I can say with certainty that I've been a diehard WindowMaker user for ages, almost as long as I've been using Linux. Preferences in editors, typesetting systems, games, media players, and programming languages have been slowly converging towards stability, but WindowMaker has almost always been a constant. I have occasionally used other window managers and environments; Fluxbox was for a short time my main window manager, and my earliest experiences with Linux included a Mandrake installation with Gnome 1.x and Sawfish. (This was also when I was saving uncompressed WAV audio tracks to my hard drive from CD.)
But one of the other, lesser known environments that I remember liking was Xfce. Not the 4.4 release candidate I am about to review, but the Xfce 3.x series. It seemed crude by today's standards, but I liked the set of tools it provided in a relatively light, fast ensemble. I tried Xfce 4.2 almost as soon as it came out, and was greatly impressed with tremendous advances in both form and function. Even so, I soon fell back into my old habits and forgot about it. But there's been a lot of buzz on the Vector Linux forums about this new release, and I eventually decided to give it a spin.
Arguably, the most convenient way to install Xfce 4.4 RC1 is through the installer available on its official site. Grab xfce4-4.4RC1-installer.run and make it executable like so: chmod +x xfce4-4.4RC1-installer.run. You will then need to worry about any existing Xfce packages on your system. Assuming you are using Vector, or even Mother Slackware, this line, when run as root, should quickly remove all Xfce packages on your system: for package in $(grep '^opt/xfce4 /var/log/packages/* | perl -F: -wnlae 'print +(split q(/), $F[0])[4];' | uniq); do removepkg $package; done. Any 3rd party stuff you added to the Xfce directory can of course be removed with rm -rf /opt/xfce4, but, as always, BE CAREFUL.
There are some caveats before running the installer. You need to have Perl modules XML::Parser and URI installed, as well as DBus and its glib binding, and the desktop-file-utils package. These are beyond the scope of the review/HOWTO, but I can personally assist on the Vector forum or via e-mail; my address is at the end of the page. With that said, here's what I didn't like about the installer: I found these things out the hard way. The install aborted at the very end, twice, because I didn't have programs that weren't mentioned or checked in the installer. I was pissed, but fortunately you shouldn't have to jump through those hoops. At any rate, the best way to run the installer is to login to X as a normal user, open up root access to the X server (xhost +si:localuser:root are the magic words) and then do su -c './xfce4-4.4RC1-installer.run' (assuming the installer is in the current directory). I recommend the install root /opt/xfce4, but the default /usr/local will also work fine. If everything is well, you can just chill and go on autopilot for a while:
This is admittedly a stereotypical problem with Unix software, but it wasn't too much of a problem here. Because I chose a non-standard install root, namely, /opt/xfce4, I needed to let the shell know where it is. As root, I put this script in /etc/profile.d/xfce4.sh, and made sure it was world-executable afterwards (chmod +x again):
#!/bin/sh
PREFIX="/opt/xfce4"
if [ -d $PREFIX ]; then
export PATH="$PATH:$PREFIX/bin"
export INFOPATH="${INFOPATH:+$INFOPATH:}$PREFIX/info"
export MANPATH="${MANPATH:+$MANPATH:}$PREFIX/man"
fi
This took care of any problems locating the Xfce binaries and documentation; Xfce could then run from KDM as I desired. The only other problem was locating the DBus service files: I added this line to /etc/dbus-1/session.conf, right next to the other <servicedir> tag: <servicedir>/opt/xfce4/share/dbus-1/services</servicedir>. Adjust this according to your installation, of course.
What really bugged me about the release, though, was the incomplete default set of icons. This resulted in ugly displays where a number of icons, if present at all, showed up as red X's. I know this is only a cosmetic flaw, but as they say: "Beauty is skin-deep, but ugly cuts clear to the bone." Even more bizarre was the fact that these icons were in fact in place in the directory /opt/xfce4/share/icons/hicolor, just mysteriously lacking an index file. I tweaked the default Rodent icon theme a little so that it would inherit from hicolor. You can do the same by editing the index.theme file in the share/icons/Rodent directory so that it says: Inherits=gnome,Industrial,hicolor; just look for the line that begins with 'Inherits'. Furthermore, I had to add the missing index.theme file to hicolor, which I was able to swipe from a FreeBSD disk sitting around in my room.
It might have been simpler just to add a different icon theme altogether, but I'm going to let that issue go for now. This is what a new install of Xfce 4.4 should look something like, if all things be set up properly:
Because I am a hardcore command line junkie, one of the first things I looked at was the terminal emulator that comes bundled with Xfce, aptly named 'Terminal'. Initially, I was perplexed by Terminal's failure to emit backspace keys in GNU screen, and settled for its tabbing functionality. Later, while geeking around in the configuration dialog, I found that explicitly telling Terminal to emit an ASCII DEL character fixed the problem.
As said before, Terminal bears a configuration dialog like that found in gnome-terminal or konsole, but Terminal is much less bloated than these programs. Not only does this obviate passing all kinds of arcane command line switches, e.g.: aterm -geometry 80x25 -fn 10x20 -tr -trsb -sh 60 -tint grey60 -fg cyan -bg black +sb, it also allows runtime configuration of the program. For instance, I tend to use a semi-transparent background, but find this causes eye-strain when reading a page in lynx. For this reason, I once had to resort to the cumbersome routine of editing a configuration file I use to easily launch aterm with certain options, detach my screen session, launch aterm again, attach screen, look at the page, revert the configuration file, detach screen again, launch aterm again, then attach screen for a final time.
Now I just have to click through a menu.
On top of all this, there are a bunch of other goodies like variable scrollback, support for opening links with a web browser on right click, and, due to use of the vte terminal widget, Unicode support and international input methods for languages we haven't even heard of. Terminal also does not support the XON/XOFF protocol, which I consider a useless backwards-compatibility misfeature at best, and a bug at worst. (It prevents me from saving the game in several *band variants that use the keybinding Control-S.) I really wouldn't have enough room to give all the useful features of Terminal in this review, but needless to say, it has replaced aterm as my main terminal emulator, and that says a lot.
The next thing I like to take care of whenever using a new window manager/desktop environment is the cluttered menus. I hate cluttered menus full of programs I've frequently never heard of, much less use. In this latest release of Xfce, this is a surprisingly trivial task. The default menu includes the XDG .desktop files for various applications on the system. This can be removed entirely, leaving a very sensible default menu, to which I will have to add very little in the future.
At this time, I was fairly pleased with the results I was getting, but left further experimentation for the next day. Waking up with a renewed sense of enthusiasm, I set out to see how I could do for decor, something I generally tend to ignore until the last moment. I subjected my stock install of Xfce to a battery of changes until I had something I really liked. I have no artistic ability whatever, but a lot of people appreciate my aesthetic sense. And all I have to say to this release of Xfce is: pwn hax. I felt like Tuor did when he first set foot in the hidden city of Gondolin (see background).
I also introduced the excellent Dropline Neu! GTK icon theme, after quickly hacking it to inherit from the Rodent and hicolor themes supplied for Xfce. It's interesting to see how you can quickly supplant the default icon configuration while retaining any custom artwork as necessary; my travails in getting the desktop environment to work taught me something new, I guess. Browsing through the tasklist configuration, I found that it can display windows from all desktops, a behavior I strongly prefer.
My advice is not to fudge with the essential layout of the taskbar at the top of the screen and panel down at the bottom; this configuration is based on a number of other tried-and-true environments, and allocates screen real estate pretty well. I did, however, fine-tune some of the settings here. The Mousepad text editor is present as a panel icon by default. As the name suggests, this is a rather bare-bones text editor in the vein of Notepad. This is fine in its own right, but I quickly replaced it with Emacs. Unless you are a new user and don't write any markup documents (such as XML) or programs, I'd recommend replacing it with your favorite editor quickly. For purposes of demonstration, auto-hide has been disabled for the second lower panel, but I suggest enabling it; even with an increase in the size of the top panel as seen in the screenshot above, Xfce clutters the desktop almost as little as Blackbox, as the larger bottom panel is stowed away until needed. This setup, especially when using a transparent panel, curiously resembles the Dock in Mac OS X. (For the record, Xfce was originally written as a replacement for the commercial CDE.)
If you need Xfce to obey Fitt's Law, and/or behave more like Windows, you can set the high panel to auto-hide, or move all features to the low panel.
One of the other things that you might notice is the liberal use of the compositor built into xfwm4, the Xfce window manager. Xorg 6.9 and later supports the Composite extension, written IIRC by Keith Packard, which allows real transparency instead of the root window pixmap pseudo-transparency hacks like you see in aterm and others. If you have such a version of Xorg, this extension can be enabled with these lines in xorg.conf:
Section "Extensions" Option "Composite" "true" EndSection
The Xfce compositor is not as flexible as the standalone xcompmgr, but is apparently more stable and easier to configure. I found out something very strange in experimenting with the Xfce compositor: it ran significantly faster under the generic VESA driver rather than under the the driver written specifically for my Via Unichrome card; completely counterintuitive, but what a shot in the dark! (lxdoom ran consistently faster as well; good news for lxdoom, bad news for productivity.) If you experience slowness with the compositor, you may wish to consider trying this as well.
It's a matter of personal taste how to set it up, if at all, but let me give a few suggestions: it's best to reduce transparency for popups because they become unreadable otherwise. Making windows transparent to any degree when being moved or resized tends to be sluggish, and is a little silly because you should like to be able to see what you're doing. Inactive windows look really cool with half-transparency or less — they look like they comes from some kind of Nazgûl OS.
Thunar is the new file manager in the latest releases of Xfce, whose unusual name is apparently derived from Norse/Viking mythology. Just like the Viking longboats of old, Thunar is built for speed. This is a significant improvement over the older, somewhat sluggish Xffm; Thunar is almost as fast as ROX-Filer and significantly more functional.
Thunar appears to be in fairly early development (current version at this time is 0.4.0), but supports all the standard features you should be able to expect of a recent Unix file manager and more: fast movement through the file system (with Ctrl-L or forward slash), permissions dialogs, selection by glob-style patterns (e.g., '*.mp3') and a handful of metadata. Does it support image thumbnailing? OF COURSE. You can even download a few particularly useful extras: an plugin for archive manipulation which, for example, allows you to extract the contents of an archive or package selected files into a new archive; and another plugin for audio metadata that integrates into the file properties and rename dialogs. This is good news for someone who hates fudging the names of ripped CDs in bash; Thunar makes my work here a lot easier without having to write any kind of specialized scripts.
Thunar also allows user-defined actions for context menus. I thought this would be particulary useful for viewing local HTML files in a web browser, so I set the entry for Browser in the Preferred Applications dialog of Xfce to a custom script called firefox-launch.sh:
#!/bin/sh FIREFOX_PATH=/usr/X11/bin/firefox if $FIREFOX_PATH -remote 'ping()' &> /dev/null; then exec $FIREFOX_PATH -remote "openURL($1,new-tab)" else exec $FIREFOX_PATH $1 fi
This will open the link given in the first argument in a Firefox tab if Firefox is already open, and open a new instance of Firefox with that URL otherwise. I then used the Custom Actions dialog in Thunar to add an action for text files that opens them with xfbrowser4.
The only thing I couldn't get working was user-editable keyboard accels for the right-click contextual menus, despite following all suggestions in the FAQ, but it's no big deal right now.
In its own niche, Thunar is a very good file manager. I treat it as a better Windows Explorer than Windows Explorer: very useful for casual file management, but no replacement for complicated or repetitive tasks which are best executed in the command line.
Xfce is a pretty damn sweet deal, and I didn't even cover the time management tool Orage, nor the archiver Xarchiver. (For the record, both are good, even if Orage isn't very well documented.) I think there's a very good chance I will stick with it in the long term over WindowMaker. What's certain is that I will definitely continue to use the applications suite that comes with Xfce; whatever changes in future releases, it seems that functionality and simplicity have always been Xfce's strongest points.
Rating: Six out of seven Stars of Elendil.
hanumizzle is a freelance journalist who presently resides in Cron Tab, Khand, now under the new management of Éomer, Third Marshal of the Riddermark.