31 December 1970

An Even Lighter Debian

Note: The material here has pretty much been obsoleted by SkinnyDebbie (blog postings | website) and is probably obsolete in other respects as well. I am leaving this page here for reference purposes.

If after installing a basic Debian-Xfce environment you find that your computer is still not fast enough for you, you can lighten up your system considerably by changing the default window manager, file manager, and some other things. This will take some time and patience to set up, but it will give you a desktop environment that's quite fast. This is especially useful if you have a RAM-starved or slow system. The result might not be awesomely pretty, but it will give you a very fast, usable, and secure system.

Install a baseline Debian-Xfce system
Go through A Lighter Debian and follow the instructions.

Install IceWM
IceWM is a very light yet highly usable window manager. To install it:
$ sudo aptitude install icewm icewm-themes
If you look through Synaptic, you will see iceme and iceconf and may be tempted to install these as well. I suggest that you not do this and instead learn how to configure IceWM directly through editing its configuration files. It's not that tough, and good documentation is available at the IceWM website.

Install ROX-filer
ROX-filer is a lightweight file manager with desktop management features. We will use it instead of Thunar.
$ sudo aptitude install rox-filer
Update menus
$ sudo update-menus
$ update-menus
Set IceWM as the default window manager
Logout. Then from the login screen's "Sessions" menu select IceWM and initiate a login. When asked if you want to make IceWM the defualt window manager, answer "Make Default".

Configure IceWM options
This is such an involved process that I decided to publish configuration files to make it easier. The basic idea is to copy some configuration files to IceWM's hidden folder in your home directory.

Start ROX-filer,
$ rox
and make your hidden files and folders visible by clicking on the eye icon or typing Ctrl-H. (Remember that in Linux, files and folder whose names begin with a period are "hidden". To see hidden files, you will need to tell your file manager to show hidden files.)

Open your WWW browser and go to http://mithat.co.nr/linux/icewm-config. Download each of the files to a temporary location and then use ROX to move them to the .icewm folder in your home directory. Important: The files you download should have no file extension. If your WWW browser adds an htm extension, remove the extensions by renaming the files.

Make the startup file executable:
$ chmod u+x ~/.icewm/startup
Logout by clicking on IceWM's applications menu icon (the leftmost icon on the taskbar) and select "Logout...", then log back in. ROX should now be managing your desktop and IceWM will generally behave better (or at least more to my liking).

You can now drag and drop items to your desktop and get to know how ROX-Filer works in your freetime.

  • ROX-Filer places links to things on the desktop, not things themselves.
  • System icons (png, svg, etc.) that you can use for decorating what you place on your desktop are located in /usr/share/icons.
  • Some of the applications under "Utilities" will not work yet. This is because we have yet to install them.
Additional notes:
  • There is a weird bug in either IceWM or ROX that will make a 'rox' button appear and flash in the taskbar whenever you log in. You can make it go away by clicking on it.
  • The "Desktop" folder in your home directory is Xfce's desktop -- not ROX's. If you are absolutely certain that you will never use Xfce again, you may delete this folder. (It's probably empty anyway, so you can simply add it again later if you decide to revert to Xfce.) Also, you will want to open the WWW browser and tell it *not* to use the "Desktop" folder as the default download location; your home directory is a good alternative for a default download location.
Change IceWM's theme
IceWM's default theme will probably not be to your liking. Change it by clicking on IceWM's applications menu icon and navigating through to the available themes. I tend to use IceBlueOkayish. There are more themes available at http://themes.freshmeat.net/browse/925/, but really good ones are hard to find.

Set ROX-filer's options
Start ROX from the command line or IceWM's applications menu.
In a blank area of the ROX window, right-click and select "Options..."
Go through list of options and set as desired. I use the following (only differences from defaults are noted):
  • Filer windows -> Sorting : Directories come first
  • Filer windows -> Tools/Minibuffer : Toolbar type : Text under icons
  • Pinboard : Pinboard behaviour : Icon grid step : Medium
  • Pinboard : Iconified windows : [unchecked] Show iconified windows
  • Menus : Behaviour : [checked] File menu on right click
  • Menus : Behaviour : Terminal emulator program: x-terminal-emulator
  • Types : Themes : Icon theme : Tango
  • Compatibility : [checked] Window manager problems : Pass all backdrop mouse clicks to window manager
Note that ROX's default behavior is to open things with a single click. Since I have moderate RPI issues, this works well for me. But you can change this to the more standard double-click if you prefer, both for regular file manager windows and for pinboards (i.e., the desktop).

Add a sound mixer
Start Synaptic under sudo and use it to install aumix-gtk, a commonly used command-line sound mixer with a GUI wrapper.

Bonus: The IceWM configuration files you downloaded earlier include keyboard shortcuts that use aumix to increase (Alt-UpArrow) and decrease (Alt-DownArrow) the master sound level. You can change these keys in ~/.icewm/keyboard.

Note: alsamixer and gnome-alsamixer are also popular sound mixers, but I haven't found a way to use either to control level with IceWM's keyboard shortcuts.

Setup a rubbish bin
One of ROX's biggest shortcomings is that it does not come with a trashcan by default. ROX lets you delete files, but when they are deleted, they are permanently deleted. However, we can add a basic Rubbish bin to the desktop manually.

Create a hidden folder in your home directory called .Apps. (Notice the period before the name; there is no perdiod after the name.) The Rubbish script will ultimately reside here, and you will be able to place other local service applications that you want hidden here as well.

Goto http://www.hayber.us/rox/ and click on the appropriate link to download Rubbish. Download the file into your home directory. Open a terminal window any type:
$ tar -xvvzf ~/Rubbish-001.tgz
(changing the name of the file if needed) to decompress the file; this will produce a Rubbish bin in your home directory. Move the directory into the ".Apps" folder using ROX; then drag and drop the Rubbish icon from the ".Apps" folder onto the Desktop. You now have a Rubbish bin link on the desktop.

Important note:
When you drag and drop items onto the Rubbish bin, they will stay there until you "Take out the rubbish" with a right-click. However, if you delete an item directlty with ROX using a right-click on an item's icon and navigating to Delete (or using the Ctrl-X shortcut), the item will be permanently deleted. I don't love this behavior, but it's best we can do without a lot of work. Xfce's trash/delete system works the same way, so there's at least some precedent for this behavior.

Change the theme used in toolbar icons of GTK2 applications
To use Tango icons in GTK applications, create a (hidden) file in your home directory called .gtkrc-2.0 and add the following text to the file:

Extra credit: Change session managers
In theory you can lighten your system a bit more by removing the Gnome Desktop Manager (GDM) and using X Desktop Manager (XDM) instead. However, I am not entirely sure the savings is worth the hassle. Also, using GDM will make it a lot easier to switch between IceWM and Xfce (as a fallback). But if you want to try it or if you need to save every last bit of RAM, do the following in one sitting and without logging out until directed to do so.

Start Synaptic:
$ sudo synaptic
and use it to uninstall GDM, then use it to install XDM.

Create a file called .xsession in your home directory, open it in an editor, and add the following lines to it:
# This is a simple .xsession file that simply starts IceWM.
# Start IceWM (or run xterm if it fails.)
exec icewm-session || exec xterm -fg red

Make the .xsession file executable:
$ chmod u+x ~/.xsession
(FYI, the above is documented in http://www.icewm.org/FAQ/IceWM-FAQ-3.html.)

Replace XDM config files:
Download the three *_mfk files from http://mithat.co.nr/linux/xdm-config to a temporary location. Then open a file manager window as root (sudo) and move the files from the temporary location into /etc/X11/xdm/.

Edit /etc/X11/xdm/xdm-config so that the *_mfk versions of the files are pointed to by making the following changes:

DisplayManager*resources: /etc/X11/xdm/Xresources_mfk
DisplayManager*startup: /etc/X11/xdm/Xstartup_mfk
DisplayManager*setup: /etc/X11/xdm/Xsetup_mfk

Logout and restart. You should now see the XDM login screen. Note: to toggle between Username and Password fields, use your keyboard's TAB key. You will not see anything when you are typing your password. Hit ENTER when you are ready to login.

Note: If you want to revert to Xfce, rename the .xsession file to something like .xsessionICEWM and logout/login.

Welcome to the world of Linux. You will now rely heavily on the Internet and the command line to figure out how to set up things that this tutorial hasn't talked about, such as:
  • Printing
  • File serving/sharing
  • A music player (try Amarok or Rythmbox)
  • Networking (including wireless networking)
Dealing with this kind of stuff is part of the joy and culture of Linux. It's not for everybody.

A final note
When you add new users, you will need to go through much of this setup for the new user. Sorry. After the new user has logged in, start from the top and do everything except install software (i.e., anything that starts $ sudo aptitude or that you do with Synaptic.)