# HG changeset patch
# User Christophe Lincoln <pankso@slitaz.org>
# Date 1335187076 -7200
# Node ID 96d7eeb131d698e2c7b8e7f9084975dcedb68f61
# Parent  b3dc4f05cd0f0718e6a62f8b3b0b0fd45ee5076e
fluxbox: better SliTaz integration, use XDG xsessions

diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox-themes/receipt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fluxbox-themes/receipt	Mon Apr 23 15:17:56 2012 +0200
@@ -0,0 +1,24 @@
+# SliTaz package receipt.
+
+PACKAGE="fluxbox-themes"
+VERSION="1.3.2"
+CATEGORY="x-window"
+SHORT_DESC="Fluxbox additionnal themes."
+MAINTAINER="pankso@slitaz.org"
+WEB_SITE="http://www.fluxbox.org/"
+WANTED="fluxbox"
+
+DEPENDS="fluxbox"
+
+# Rules to gen a SliTaz package suitable for Tazpkg.
+genpkg_rules()
+{
+	mkdir -p $fs/usr/share/fluxbox
+	cp -a $install/usr/share/fluxbox/styles $fs/usr/share/fluxbox
+	# Rome style provided by fluxbox package
+	for s in Shade Flux Results
+	do
+		rm -rf $fs/usr/share/fluxbox/styles/$s
+	done
+}
+
diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox-tools/receipt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fluxbox-tools/receipt	Mon Apr 23 15:17:56 2012 +0200
@@ -0,0 +1,22 @@
+# SliTaz package receipt.
+
+PACKAGE="fluxbox-tools"
+VERSION="1.3.2"
+CATEGORY="x-window"
+SHORT_DESC="Fluxbox additionnal tools (fbsetroot)."
+MAINTAINER="pankso@slitaz.org"
+WEB_SITE="http://www.fluxbox.org/"
+WANTED="fluxbox"
+
+DEPENDS="fluxbox"
+
+# Rules to gen a SliTaz package suitable for Tazpkg.
+genpkg_rules()
+{
+	mkdir -p $fs/usr/bin
+	for t in fbsetroot fbsetbg fluxbox-generate_menu fluxbox-remote \
+		fluxbox-update_configs
+	do
+		cp -a $install/usr/bin/$t $fs/usr/bin
+	done
+}
diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox/receipt
--- a/fluxbox/receipt	Mon Apr 23 13:29:57 2012 +0200
+++ b/fluxbox/receipt	Mon Apr 23 15:17:56 2012 +0200
@@ -10,14 +10,13 @@
 WGET_URL="$SF_MIRROR/$PACKAGE/$TARBALL"
 TAGS="wm window-manager"
 
-DEPENDS="xorg fontconfig imlib2"
-BUILD_DEPENDS="xorg fontconfig imlib2"
+DEPENDS="xorg fontconfig imlib2 hsetroot xorg-xcompmgr"
+BUILD_DEPENDS="xorg-dev fontconfig-dev imlib2-dev"
 
 # Rules to configure and make the package.
 compile_rules()
 {
 	cd $src
-	#patch -p1 < $stuff/fluxbox-gcc-4.3.3.diff
 	./configure $CONFIGURE_ARGS &&
 	make && make install
 }
@@ -31,20 +30,41 @@
 	do
 		cp -a $install/usr/share/fluxbox/$f $fs/usr/share/fluxbox
 	done
-	for s in Shade Flux bloe Results
+	
+	# 3 Default themes --> fluxbox-themes
+	for s in Shade Flux Results
 	do
 		cp -a $install/usr/share/fluxbox/styles/$s \
 			$fs/usr/share/fluxbox/styles
 	done
+	
+	# Split tools --> fluxbox-tools
+	for t in fbsetroot fbsetbg fluxbox-generate_menu fluxbox-remote \
+		fluxbox-update_configs
+	do
+		rm $fs/usr/bin/$t
+	done
+	
+	# XDG Xsessions
+	cp -a $stuff/xsessions $fs/usr/share
+	
+	# Custom SliTaz integration
+	mkdir -p $fs/usr/share/slitaz/fluxbox
+	cp -a $stuff/fluxbox-session $fs/usr/bin
+	cp $stuff/startup $fs/usr/share/slitaz/fluxbox
+	cp $stuff/styles $fs/usr/share/fluxbox
+	# Overwrite
+	cp $stuff/menu $fs/usr/share/fluxbox
+	cp $stuff/init $fs/usr/share/fluxbox
 }
 
 post_install()
 {
-	res=`cat $1/etc/slim.conf | grep ^session | sed s/"sessions. *"//`
+	res=$(cat $1/etc/slim.conf | grep ^session | sed s/"sessions. *"//)
 	# Adding WM to SLIM available sessions.
 	if ! echo "$res" | grep -q $PACKAGE; then
 		echo -n "Adding $PACKAGE to /etc/slim.conf..."
-		sed -i "s/^sessions.*/sessions            ${res},$PACKAGE/" /etc/slim.conf
+		sed -i "s/^sessions.*/sessions            ${res},$PACKAGE/" $1/etc/slim.conf
 		status
 	fi
 }
diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox/stuff/fluxbox-gcc-4.3.3.diff
--- a/fluxbox/stuff/fluxbox-gcc-4.3.3.diff	Mon Apr 23 13:29:57 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-diff -up fluxbox-1.0.0/src/main.cc.gcc43 fluxbox-1.0.0/src/main.cc
---- fluxbox-1.0.0/src/main.cc.gcc43	2008-03-27 01:19:22.000000000 -0400
-+++ fluxbox-1.0.0/src/main.cc	2008-03-27 01:20:15.000000000 -0400
-@@ -49,6 +49,7 @@
- #include <fstream>
- #include <stdexcept>
- #include <typeinfo>
-+#include <cstring>
- 
- using std::cout;
- using std::cerr;
diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox/stuff/fluxbox-session
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fluxbox/stuff/fluxbox-session	Mon Apr 23 15:17:56 2012 +0200
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# SliTaz GNU/Linux Fluxbox session script. This script let use Flux
+# like Openbox autostart and user dont have to call fluxbox into ther
+# startup script. We also set some XDG variables. 
+#
+
+fluxdir="$HOME/.fluxbox"
+
+# Export XDG standard directories.
+export XDG_CONFIG_HOME="$HOME/.config"
+export XDG_CACHE_HOME="$HOME/.cache"
+export XDG_CURRENT_DESKTOP=fluxbox
+
+# Make sure we have config files.
+if [ ! -x "$fluxdir/startup" ]; then
+	cp /usr/share/slitaz/fluxbox/startup $fluxdir
+	chmod +x $fluxdir/startup
+fi
+
+# Run the user Fluxbox startup script.
+$fluxdir/startup
+
+# Now we start fluxbox itself.
+exec fluxbox
diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox/stuff/init
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fluxbox/stuff/init	Mon Apr 23 15:17:56 2012 +0200
@@ -0,0 +1,9 @@
+! If you're looking for settings to configure, they won't be saved here until
+! you change something in the fluxbox configuration menu.
+
+session.menuFile:	~/.fluxbox/menu
+session.keyFile: ~/.fluxbox/keys
+session.styleFile: /usr/share/fluxbox/styles/SliTaz
+session.configVersion:	13
+session.screen0.window.unfocus.alpha:	132
+session.screen0.slit.placement:	RightCenter
diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox/stuff/menu
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fluxbox/stuff/menu	Mon Apr 23 15:17:56 2012 +0200
@@ -0,0 +1,38 @@
+# SliTaz GNU/Linux Fluxbox default menu.
+#
+[begin] (SliTaz Fluxbox)
+[encoding] {UTF-8}
+	[exec] (Run application) {fbrun} </usr/share/icons/SliTaz/mimetypes/32/exec.png>
+[submenu] (Applications) </usr/share/pixmaps/slitaz-menu.png>
+	[exec] (Terminal emulator) {terminal}
+	[exec] (File manager) {file-manager}
+	[exec] (Web browse) {midori}
+	[exec] (Text editor) {editor}
+	[exec] (Packages manager) {terminal -e tazpkg shell}
+	[exec] (Process viewer) {terminal -e top}
+[end]
+[submenu] (Desktop effects) </usr/share/icons/SliTaz/apps/22/desktop-effects.png>
+	[exec] (Activate composite) {xcompmgr}
+	[exec] (Activate shadows) {xcompmgr -c -r 10 -o 0.5}
+	[exec] (Stop effects) {killall xcompmgr}
+[end]
+[workspaces] (Workspace List) </usr/share/icons/SliTaz/places/32/desktop.png>
+[submenu] (Wallpaper image) </usr/share/icons/SliTaz/mimetypes/32/image-x-generic.png>
+    [wallpapers] (/usr/share/images) {hsetroot -fill}
+    [wallpapers] (~/Images/Wallpapers) {hsetroot -fill}
+[end]
+[config] (Configure Fluxbox) </usr/share/icons/SliTaz/categories/22/preferences-desktop.png>
+[submenu] (Fluxbox tools) </usr/share/icons/SliTaz/categories/22/applications-system.png>
+[submenu] (System Styles) {Choose a style...}
+	[stylesdir] (/usr/share/fluxbox/styles) 
+[end]
+[submenu] (User Styles) {Choose a style...}
+	[stylesdir] (~/.fluxbox/styles) 
+[end]
+	[commanddialog] (Fluxbox Command) 
+	[reconfig] (Reload Fluxbox config) 
+	[restart] (Restart Fluxbox)
+[end]
+[exit] (Exit Session) </usr/share/pixmaps/slitaz-logout.png>
+[endencoding]
+[end]
diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox/stuff/slitaz.menu
--- a/fluxbox/stuff/slitaz.menu	Mon Apr 23 13:29:57 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-# SliTaz GNU/Linux Fluxbox default menu.
-#
-[begin] (Fluxbox)
-[encoding] {UTF-8}
-      [exec] (Xterm) {xterm} 
-      [exec] (Midori) {midori} 
-      [exec]   (Run) {fbrun} 
-[submenu] (Terminals)
-      [exec]   (Xterm) {xterm}
-      [exec]   (Sakura) {sakura}
-[end]
-[workspaces] (Workspace List)
-[submenu] (Fluxbox menu)
-      [config] (Configure) 
-[submenu] (System Styles) {Choose a style...}
-      [stylesdir] (/usr/share/fluxbox/styles) 
-[end]
-[submenu] (User Styles) {Choose a style...}
-      [stylesdir] (~/.fluxbox/styles) 
-[end]
-[submenu] (Window Managers)
-      [restart] (openbox) {openbox} 
-[end]
-      [commanddialog] (Fluxbox Command) 
-      [reconfig] (Reload config) 
-      [restart] (Restart) 
-      
-[end]
-[separator] 
-[exit] (Exit) 
-[endencoding]
-[end]
diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox/stuff/startup
--- a/fluxbox/stuff/startup	Mon Apr 23 13:29:57 2012 +0200
+++ b/fluxbox/stuff/startup	Mon Apr 23 15:17:56 2012 +0200
@@ -1,14 +1,18 @@
 #!/bin/sh
 #
-# SliTaz GNU/Linux Fluxbox start up script.
+# SliTaz GNU/Linux Fluxbox system wide session script.
 #
 
-# DBUS message bus (automount removable devices)
-dbus-launch --sh-syntax --exit-with-session &
+# Start DBUS session.
+if [ ! "$DBUS_SESSION_BUS_ADDRESS" ]; then
+	dbus-launch --sh-syntax --exit-with-session &
+fi
 
-# Start PCmanFM as daemon for Wallpaper and desktop icons.
-pcmanfm -d &
+# Start PCmanFM as daemon (Can be used for wallpaper and desktop icons).
+#pcmanfm -d &
 
-# Now we start fluxbox itself. To keep a log you can use:
-# exec fluxbox -log "/home/pankso/.fluxbox/log"
-exec fluxbox
+# Set a background image using hsetroot.
+hsetroot -fill /usr/share/images/slitaz-background.jpg &
+
+# Start the composite manager th get full Flucbox transparency
+xcompmgr &
diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox/stuff/styles/SliTaz
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fluxbox/stuff/styles/SliTaz	Mon Apr 23 15:17:56 2012 +0200
@@ -0,0 +1,89 @@
+
+*font:							Sans Condensed-8:bold
+
+toolbar:						flat solid
+toolbar.color:					#443b31
+toolbar.justify:				left
+toolbar.font:					sans-10:bold
+toolbar.height:					20
+toolbar.borderWidth:			0
+toolbar.clock:					flat
+toolbar.clock.font:				Sans Condensed-10:bold
+toolbar.clock.color:			#443b31
+toolbar.clock.textColor:		#ffffff
+toolbar.workspace:				flat
+toolbar.workspace.color:		#443b31
+toolbar.workspace.textColor:	#cfcfcf
+toolbar.iconbar.borderWidth:			0
+toolbar.iconbar.focused: 				flat
+toolbar.iconbar.focused.color:  		#443b31
+toolbar.iconbar.focused.textColor:		#ffffff
+toolbar.iconbar.focused.justify:		left
+toolbar.iconbar.unfocused: 				flat
+toolbar.iconbar.unfocused.color:  		#443b31
+toolbar.iconbar.unfocused.textColor:	#b1b1b1
+toolbar.iconbar.unfocused.justify:		left
+
+menu.title:					flat
+menu.title.color:			#f1f1f1
+menu.title.textColor:		#444444
+menu.title.font:			sans-10
+menu.title.justify:			center
+menu.frame:					flat solid
+menu.frame.color:			#443b31
+menu.frame.textColor:		#ffffff
+menu.frame.disableColor:	#cfcfcf
+menu.frame.font:			sans-10
+menu.frame.justify:			left
+menu.bullet.position:		right
+menu.bullet:				triangle
+menu.hilite:				flat solid
+menu.hilite.color:			#d66018
+menu.hilite.textColor:		#ffffff
+menu.borderWidth:			0
+
+window.bevelWidth:				3
+window.justify:					left
+window.roundCorners: 			TopRight TopLeft BotomRight BottomLeft
+window.title.height:			22
+#window.title.focus:			flat vertical gradient
+window.title.focus:				flat solid
+window.title.focus.color:		#443b31
+#window.title.focus.colorTo:	#ededed
+window.title.unfocus:			flat solid
+window.title.unfocus.color:		#443b31
+
+window.label.focus:				flat solid
+window.label.focus.color:		#443b31
+window.label.focus.textColor:	#ffffff
+window.label.unfocus:			flat solid
+window.label.unfocus.color:		#443b31
+window.label.unfocus.textColor:	#b1b1b1
+
+window.button.focus:			flat solid
+window.button.focus.color:		#443b31
+window.button.focus.picColor:	#cfcfcf
+window.button.unfocus:			flat solid
+window.button.unfocus.color:	#443b31
+window.button.unfocus.picColor:	#b1b1b1
+
+window.borderColor:				#443b31
+
+window.handle.focus:			flat
+window.handle.focus.color:		#d66018
+window.handle.unfocus:			flat solid
+window.handle.unfocus.color:	#443b31
+
+window.grip.focus:			flat solid
+window.grip.focus.color:	#443b31
+window.grip.unfocus:		flat solid
+window.grip.unfocus.color:	#dadada
+
+*button.pressed:		flat solid
+*button.pressed.color:	#cfcfcf
+
+bevelWidth:			2
+borderWidth:		1
+handleWidth:		3
+
+
diff -r b3dc4f05cd0f -r 96d7eeb131d6 fluxbox/stuff/xsessions/fluxbox.desktop
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fluxbox/stuff/xsessions/fluxbox.desktop	Mon Apr 23 15:17:56 2012 +0200
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=XSession
+Name=Fluxbox Session
+Name[fr]=Session Fluxbox
+Exec=fluxbox-session