(Modified 2005 Oct 08)
XFCE 4.0
a lightweight window manager
Outline
What I want in a window manager
When I first installed Linux, I did so in a K6-2 at 380MHz with 96MB of RAM. The default desktop was GNOME, and I heard the disk swapping away constantly. I imagine it would have been only worse if I were running the KDE desktop.
I had to ask myself: What exactly do I want a window manager to do? From another perspective, what can't I do from an all-text terminal? I cut and paste text, and I got hooked on tabbed windows (from the Opera web browser), and I'd like to shuffle terminal windows without the mouse (i.e., minimize, raise, lower). I would prefer it if minimized windows did not create a lot of clutter. I definitely do not need start menus and desktop icons.
I went to freshmeat.net and gathered what I could from the screenshots. (I did further Google searches for other window managers, but this link seemed to cover the major ones.) The two I narrowed it down to were Enlightenment and XFCE. GNOME, the default, isn't that bad outside of the bloat. After test-driving Enlightenment, I was lukewarm about it, but I took to XFCE right away, for whatever reason.
Minimizing slowness at startup -- notspecific to XFCE
One source of slowness that I could circumvent right away was at startup. It seemed like it took way too long to get to the login screen; maybe this was psychological, because I didn't have a text window to read. In any case, I wanted to boot to a text login, rather than a graphical login. I did this by editing the file /etc/inittab (as root). There is a line that reads
id:5:initdefault:
and I changed the 5 to a 3. The comments in inittab say what those numbers mean, kind of. In any case, it felt like booting to the text login and then starting X-Windows (using the command startx) was faster than booting to a graphical login. Like I said, maybe it was psychological.
There are other ways I could speed things up at startup, i.e. using chkconfig, but I haven't experimented with that yet.
XFCE installation
For some reason, XFCE wasn't an option during the Fedora installation; hopefully, RedHat corrected this situation with FC3. Even stranger, the RPMs were present on the CDs anyway. Not surprisingly, there wasn't a yum repository that I knew of that had XFCE. So, I needed to juggle the dependecy problems myself.
I would recommend copying the RPMs from the CDs to your home directory. In principle you could run rpm right off of the CDs, but you'd have to install off of FC2 disk 3, then 4, back to 3 again.
Here are the files that I needed, by the CDs they came from:
Disk 3:
libxfcegui4-4.0.5-1.i386.rpm
libxfcegui4-devel-4.0.5-1.i386.rpm
libxfce4mcs-4.0.5-2.i386.rpm
libxfce4mcs-devel-4.0.5-2.i386.rpm
libxfce4util-4.0.5-1.i386.rpm
libxfce4util-devel-4.0.5-1.i386.rpm
dbh-1.0.18-2.i386.rpm
dbh-devel-1.0.18-2.i386.rpm
Disk 4
xfdesktop-4.0.5-2.i386.rpm -- The dbh* RPMs from Disk 3 are dependent on this one: annoying.
xffm-4.0.5-1.i386.rpm
xffm-icons-4.0.5-1.i386.rpm
xfce-mcs-manager-4.0.5-1.i386.rpm
xfce-mcs-manager-devel-4.0.5-1.i386.rpm
xfce4-panel-4.0.5-2.i386.rpm
xfce-mcs-plugins-4.0.5-2.i386.rpm
xfce-utils-4.0.5-1.i386.rpm
xfwm4-4.0.5-2.i386.rpm
xfwm4-themes-4.0.5-1.noarch.rpm
Here is the order in which I installed them, using rpm -ivh. RPMs on the same line can be installed in any order, I think.
libxfcegui4-4.0.5-1.i386.rpm libxfcegui4-devel-4.0.5-1.i386.rpm
libxfce4mcs-4.0.5-2.i386.rpm libxfce4mcs-devel-4.0.5-2.i386.rpm libxfce4util-4.0.5-1.i386.rpm libxfce4util-devel-4.0.5-1.i386.rpm
xfdesktop-4.0.5-2.i386.rpm (This is the problematic RPM on Disk 4 that some Disk 3 RPMs are dependent on.)
dbh-1.0.18-2.i386.rpm dbh-devel-1.0.18-2.i386.rpm
xffm-4.0.5-1.i386.rpm
xffm-icons-4.0.5-1.i386.rpm
xfce-mcs-manager-4.0.5-1.i386.rpm xfce-mcs-manager-devel-4.0.5-1.i386.rpm
xfce4-panel-4.0.5-2.i386.rpm xfce-mcs-plugins-4.0.5-2.i386.rpm xfce-utils-4.0.5-1.i386.rpm
xfwm4-themes-4.0.5-1.noarch.rpm
Post-installation setup
If I remember correctly, all I needed to do next was type switchdesk xfce and then start up X with the typical startx.
Keyboard shortcuts
With my early Unix experience logged on SGIs, I was used to various IRIX key bindings. It's kind of annoying when you instinctively try to raise a window with ALT-F1, and that brings up Mozilla, and relatively slowly at that on my computer.
It turns out that I can indeed override the default key bindings. The file with these settings is /usr/share/xfwm4/themes/default.keys/keythemerc. It's a simple text file, i.e., no mysterious syntax.
For example, to make "minimize" like on the SGI (ALT-F9), I swapped its bindings with ALT-F8. I learned that "raise" and "lower" window were ALT-SHIFT-PageUp and ALT-SHIFT-PageDown; this is actually more intuitive than the respective ALT-F1 and ALT-F3 on IRIX, so I'm keeping them.
Here is my running list of default shortcuts that I want to remember
Cycle between windows -- ALT-TAB
Raise window -- ALT-SHIFT-PageUp
Lower window -- ALT-SHIFT-PageDown
Switch desktop -- CTRL-SHIFT-{left,right}
Epilogue
Between booting to a text login and installing XFCE, I'm fairly certain that I would schieve an usable GUI faster on a 380MHz Linux box than on a 2GHz XP box. I will say that disk activity (i.e., swapping) limited performace more in Linux than in Windows 98; I'm not sure if that's due to the Linux kernel, or if the window manager is still bigger than Win98. In any case, I would recommend having at least 128MB of RAM.
I ended up upgrading the motherboard on the system running Linux (long story), so I have a not-so-feeble 1GHz Celeron now. Still, just on general principle, I wouldn't want extraneous fluff weighing me down, so I will do what I can to stick with XFCE. My newest computer has an Athlon 2800, and I'm definitely inclined to stick with XFCE, when I build up the initiative to tinker with it, which will be a while.
This page is Lynx-enhanced