agnula logo
:: Install
:: Documents
:: Links
:: Contacts
:: Develop

Custom desktop

If the default GNOME or fluxbox desktop is not to your liking, it is relatively simple to set up your own custom desktop. You will need to make sure you have a Debian entry in your /etc/apt/sources.list (see InstallApt) and install the components you want. For this example I installed:

# apt-get install fbpanel openbox rox-filer gtk-theme-switch

Next you need to create a default Xsession for yourself edit/create ~/.Xsession like this:

exec rox -p eye-candy &
exec fbpanel &
exec openbox

It's the same format as you would use for ~/.xinitrc if you're familiar with launching xsessions using startx. So you can put all your startup items here, remembering to launch the window manager last. Check the manpages for these commands to fine tune them.

Configuring the Desktop

Restart your X session. When you get to the GDM login screen, click on 'Session' and select the 'Default System Session'. Great, you should now be looking at a fairly uninspiring grey background with one sad folder on it and a menu bar at the bottom.

Right-clicking on the grey background brings up various options. Firstly we want a nice background so the 'Backdrop' option gives us a nice drag'n'drop interface, clicking on the solitary folder opens up a ROX window and if nothing better there is usually something in /usr/share/wallpapers that will do the job for now. From the right-click menu you can also get to the ROX options panel and manual, which you will probably need to study to get the best from ROX.

We want to make the menu bar a little bit more exciting, so it it necessary to create or edit a text file called 'default' in your newly created .fbpanel directory. If you don't see one, make one. (You can do all this from ROX btw. ;)

########################################
## fbpanel configuration file for DeMuDi
## ~/.fbpanel/default
########################################

Global {

    edge = bottom
    allign = left
    margin = 0
    widthtype = percent
    width = 100
    heighttype = pixel
    height = 28
    roundcorners = true
    Transparent = true
    TintColor = #666666
    Alpha = 0
}

Plugin {
    type = wincmd
    config {
        image = /usr/share/fbpanel/images/Desktop2.png
        tooltip = Left click to iconify all windows. Middle click to shade them.
    }
}
Plugin {
    type = menu
    config {
#       name = Debian menu
        image = /usr/share/fbpanel/images/Menu.png
        include {
        	name = /var/lib/fbpanel/menu
	}
    }
}
Plugin {
    type = menu
    config {
#	name = Custom menu
	image = /usr/share/pixmaps/debian-logo.png

	item {
		image = /usr/share/pixmaps/firefox.png
		name = web browser
		action = x-www-browser
	}
	item {
		image = /usr/share/pixmaps/gnome-irc.png
		name = irc
		action = xchat
	}
	item {
		name = synaptic
		image = /usr/share/pixmaps/synaptic.png
		action = gksu -u root /usr/sbin/synaptic
	}
	separator {
	}
	item {
            	name = terminal
            	image = /usr/share/fbpanel/images/GNOME-Terminal.png
            	action = /usr/bin/x-terminal-emulator
        }
	item {
		name = Rox
		image = /usr/share/pixmaps/gnome-home.png
		action = rox
	}
	separator {
	}
	menu {
		name = System
		image = /usr/share/pixmaps/gnome-computer.png
                item {
        		name   = GTK+ 2.0 Theme Switch
			image = /usr/share/pixmaps/apple-green.png
        		action = /usr/bin/switch2 
      		}
		item {
			name = Update Menus
			image = /usr/share/pixmaps/gnome-gmenu.png
			action = update-menus
		}
		item {
			name = Restart ALSA
			image = /usr/share/pixmaps/alsa.xpm
			action = gksu -m "Restart ALSA?" -t "ALSA Restart" -i "/usr/share/pixmaps/alsa.xpm" "/etc/init.d/alsa restart"
		}
		item {
			name = Reboot
			image = /usr/share/pixmaps/gnome-computer.png
			action = gksu -m "Reboot?" -t "Reboot" -i "/usr/share/pixmaps/gnome-computer.png" "reboot"
		}
		item {
			name = Shut Down
			image = /usr/share/pixmaps/other/Shutdown.png
			action = gksu -m "Shut Down?" -t "Shut Down" -i "/usr/share/pixmaps/other/Shutdown.png" "halt"
		}
	}
	separator {
	}        
# Local system menu
#	include {
#		name = /etc/fbpanel/menu
#	}

# User-specific menu -- only enable if all users have a menu file, otherwise
# users without menu files will have their fbpanels crash
#	include {
#		name = ~/.fbpanel/menu
#	}
    }
}

Plugin {
    type = separator
}



Plugin {
    type = launchbar
    config {
        button {
            image = /usr/share/pixmaps/gnome-terminal.png
            tooltip = Terminal
            action = /usr/bin/x-terminal-emulator
        }
        button {
            image = /usr/share/fbpanel/images/Networking.png
            tooltip = Web Browser
            action = /usr/bin/x-www-browser
        }
	button {
            image = /usr/share/pixmaps/qjackctl.xpm
            tooltip = JACK Control
            action = qjackctl -s
        }
	button {
            image = /usr/share/pixmaps/demudi_mixers.xpm
            tooltip = Mixer
            action = alsamixergui
        }
	button {
	    image = /usr/share/pixmaps/no.xpm
            tooltip = exit panel
            action = killall fbpanel
        }
    }
}


Plugin {
    type = pager
}
 
 Plugin {
    type = separator
}  

# 'icons' plugin lets you customize window icons. 
# these changes applay to entire desktop
Plugin {
    type = icons
    config {
        DefaultIcon = PREFIX/share/fbpanel/images/default.xpm     
        application {
            Image = /usr/share/fbpanel/images/GNOME-Terminal.png
            ClassName = XTerm
        }
        application {
            Image = /usr/share/fbpanel/images/GNOME-Terminal.png
            ClassName = mlterm
        }
        application {
            Image = /usr/share/fbpanel/images/GNOME-Terminal.png
            ClassName = URxvt
        }
        application {
            Image = /usr/share/fbpanel/images/Emacs.png
            AppName = emacs
            ClassName = Emacs
        }

    }
}
Plugin {
    type = space
    #expand = true
    config {
        size = 20
    }
}


Plugin {
    type = taskbar
    expand = true
    config {
        ShowIconified = true
        ShowMapped    = true
        ShowAllDesks  = false
        tooltips = true
        IconsOnly = false
        MaxTaskWidth = 150
    }
}

Plugin {
    type = tray
}

# Digital Clock
Plugin {
    type = dclock
    config {
        ClockFmt = %R
        TooltipFmt = %A %x
        Action = xmessage Please define some command &
    }
}

You will probably need to log out and back in before this takes effect. Now install some nice GTK2 themes and start customising!

Have Fun!

Check out our Frappr! Valid XHTML 1.0! Valid CSS!