LWN.net Logo

A look at Xfce 4.2

December 1, 2004

This article was contributed by Joe 'Zonker' Brockmeier.

As a rule, the Linux desktop discussion is dominated by the two heavyweight desktop environments -- KDE and GNOME. The term "heavyweight" applies to the respective "market share" of those desktops as well as the resources required to run either desktop. Linux users who wish to utilize a slightly slimmer desktop environment, without compromising features, may find the Xfce desktop environment an attractive alternative. With the release of the Xfce 4.2 release candidate, we decided to take a look at Xfce and provide a rundown of some of its more interesting features.

As the Xfce website states, Xfce is "a lightweight desktop environment for unix-like operating systems." Xfce started out as a Common Desktop Environment (CDE) clone, but has evolved into a unique desktop environment that's much more interesting (at least to this writer) than CDE.

The site os-cillation has GUI installers for Xfce 4.2RC1. To the best of this writer's knowledge, Xfce is the first desktop with its own GUI installer. There are four installers available; The base Xfce installer, the Gtk+ engine for Xfce installer, the Xfce Goodies installer and an installer for the Terminal term emulator from os-cillation. We chose to go the "kitchen sink" route, and installed everything available. However, only the base package should be required to use Xfce.

Installing Xfce with the GUI installers is a breeze, at least as long as the target system has all of the requisite software that Xfce requires to build. We built Xfce on two systems, a SUSE 9.2 system and a Ubuntu Linux system. The SUSE build went off without a hitch after installing the packages mentioned on the installer page.

The Ubuntu build failed a few times due to missing dependencies. This was easily fixed, though it was a minor annoyance having to apt-get the required libraries and re-start the install only to have it fail a few minutes later at a different point. At start time, the GUI installer identifies a few major components that are required to proceed, but doesn't display a comprehensive list of dependencies. [Xfce]

After the installation, it was time to exit the session in progress and log into Xfce. The first thing one will notice about Xfce is that it's much faster to load than KDE or GNOME. For users with systems with processors faster than 2 GHz and an abundance of RAM, this won't be a huge incentive to use Xfce. However, Xfce is a bit snappier than GNOME or KDE, and a great choice for older systems with less horsepower.

Many Linux users have probably run across GNOME and KDE applications that are written in such a way that they require services from their native desktop environments to function. For users that depend on applications that require GNOME or KDE services, Xfce can be configured to run GNOME or KDE services when it starts. This will slow down Xfce start time, but it's a handy feature for anyone who needs specific applications that won't otherwise cooperate with Xfce. Xfce's session settings, by default, do not allow Xfce to manage remote X applications.

The Xfce panel is highly configurable. By default, it includes launchers for the Xfce help system, Xfce configuration settings, Mozilla browser, Mozilla mail, XMMS, the Xfce "fast file manager" (Xffm), a graphical pager, terminal launcher and buttons to log out or lock your X session. Users can add launchers, remove launchers, change the orientation of the panel from horizontal to vertical and so on. The pager also allows the user to move windows from one desktop to another simply by dragging the window's outline in the pager to a different desktop. The Xfce Goodies package includes several useful plugins for the panel, including CPU and network monitors, a "show desktop" plugin and several others.

Xfce's file manager, Xffm is interesting, with quite a few handy features. Xffm includes a SMB network browser, a "Book" tree to allow users to bookmark frequently-visited directories, an fstab browser and a fairly useful find utility (Xfglob4). The Xffm components can also be invoked by themselves, so a user can call just the SMB browser by running xfsamba4 or browse only the bookmarked directories files with xfbook4. Xffm also makes it easy to rename files, create symlinks and even "scramble" files. The Xffm interface seems a bit clunky, but this writer doesn't often use file managers anyway.

Xfce is modular, meaning that the user can choose to drop components from the desktop if they are unwanted. Don't want to run the Xfce panel? No problem. Want to skip the GTK Theme Engine? That's an option as well. Users may also run various Xfce components under other window managers / desktop environments, if they prefer.

Does the world need yet another terminal emulator? This writer prefers to just use the venerable xterm, but others want a little more from their terminal emulator. The version of Terminal available from os-cillation for Xfce is only at version 0.1.10, but it seems stable enough for everyday use. Terminal has a few features not available in xterm, such as tabs for multiple terminal instances and transparency or a user-defined background image. Xfce also includes an xterm-like terminal called xfterm4, which is the default Xfce terminal.

Some of Xfce's features are not immediately visible. For example, Xfce supports Freedesktop.org Window Manager hints, XDND (drag and drop protocol) and several others. Xfce can also be configured in "kiosk mode" where Xfce can be locked down to prevent users making changes to the configuration of Xfce.

Another feature that this writer is particularly fond of is the ability to switch desktops by using the mouse scrollwheel. Simply hover the mouse over an "empty" space on the desktop and scroll. This feature is available in KDE as well, but it seems to have appeared in Xfce first.

In short, Xfce 4.2 seems to be ready for prime time. We used the release candidate for several days with no problems to speak of. It's an excellent desktop environment for users who want a clean, fast and attractive desktop.


(Log in to post comments)

A look at Xfce 4.2

Posted Dec 2, 2004 3:41 UTC (Thu) by terminator (guest, #2292) [Link]

I wonder the performance, e.g., scrolling, of Xfce's new Terminal since it is based on VTE, which tends to be slow. And this Terminal still extensively depends on GTK. FYI, another multi-tab terminal emulator, mrxvt, which is based on rxvt/aterm, has been around for a while. It is much lighter than this Terminal, and faster.

Terminals

Posted Dec 2, 2004 13:31 UTC (Thu) by hmh (subscriber, #3838) [Link]

What we do need is an easy way to embed xterm inside another window, and control it through some sort of IPC mechanism.

Or maybe we could have a libxterm :-) with the xterm terminal engine.

Then we can write bells-and-whistles such as tabs, and still have a terminal emulator that actually works, instead of the usual utter crap people who like bells-and-whistles too much end up writing when they try their hand at writing GUI consoles and terminal emulators.

I have very little faith that anyone will write a better terminal engine than the one in xterm. Even rxvt does not come close (but it is still vastly superior to certain crap we have out there...).

Terminals

Posted Dec 2, 2004 17:38 UTC (Thu) by iabervon (subscriber, #722) [Link]

I think that it would be great if someone took xterm's core engine, cleaned out the junk (tektronic mode, etc), and made it into a library (with a small program to take command line arguments and run a program attached to the tty). I suspect that having other terminal emulators be based on replacing the widget set in this, rather than starting from scratch, would give much better results (while still producing scroll bars that people these days know how to use and menus people can find).

Terminals (xterm library)

Posted Dec 2, 2004 19:22 UTC (Thu) by smoogen (subscriber, #97) [Link]

Everyone I know who has started down this path (about 8 people so far) get about 2 weeks into it.. and then decide that rewriting it from scratch would be easier on the brain.

Terminals (xterm library)

Posted Dec 2, 2004 20:35 UTC (Thu) by iabervon (subscriber, #722) [Link]

I think there's a certain amount of work that could be done on it to clean up things that are obvious to fix (e.g., xstrings) or that are no longer desired (Tek mode). This would at least save future people 2 weeks of thinking they might get somewhere.

Beyond that, I suspect that there's some stuff that could be salvaged, which could be used to make a new program that works as well. charproc.c seems to me to be a relatively clean ANSI escape sequence processor (relative to, e.g., the kernel's console one...).

A look at Xfce 4.2

Posted Dec 2, 2004 3:44 UTC (Thu) by terminator (guest, #2292) [Link]

WindowMaker also supports the feature to switch workspace using mouse-wheel. You just needs to enable it in preferences.

Mouse wheel workspace switching

Posted Dec 2, 2004 20:32 UTC (Thu) by hazelsct (guest, #3659) [Link]

Indeed, this is nothing new. Enlightenment has had this feature for at least six years. Which I guess leaves GNOME's window managers as the last to implement it?

Installer

Posted Dec 2, 2004 5:00 UTC (Thu) by elanthis (guest, #6227) [Link]

Ximian had an installer for their version of GNOME, and Dropline GNOME (for Slackware) has an installer as well. This definitely isn't the first.

Installer

Posted Dec 2, 2004 6:46 UTC (Thu) by zonker (subscriber, #7867) [Link]

Indeed, you're correct... I forgot about Ximian's GUI installer. I believe Xfce's installer is the only one that actually compiles from source, though. (Again, I might be wrong on that. There's so much out there that it's difficult to know for sure...)

Installer? No, thanks!

Posted Dec 2, 2004 16:24 UTC (Thu) by debacle (subscriber, #7114) [Link]

I'm a XFCE user for some years now and like it very much. But I don't know what the installer is good for. All GNU/Linux distributions have some kind of package management. On my distro of choice, I type apt-get install xfce4, on other distros it's similar. Installers are a bad thing from the evil planet Windows. Installers destroy sane dependency handling and the consistency of your OS. Just say no.

Installer? No, thanks!

Posted Dec 2, 2004 19:03 UTC (Thu) by coolian (guest, #14818) [Link]

What about when your distro doesn't package it, or there is some other
unforseen occurence? Just say "yes" to flexibility.

Installer? No, thanks!

Posted Dec 6, 2004 16:56 UTC (Mon) by ballombe (subscriber, #9523) [Link]

Switch to a distro that offers more flexibility?

Installer? No, thanks!

Posted Dec 2, 2004 19:46 UTC (Thu) by Fats (subscriber, #14882) [Link]

Because Windows installers can't do sane dependencies it doesn't mean it has to be a feature of all installers. I don't see why we can't have an installer that retreives debs for perfect integration on a debian machine, rpm for red hat and others, a LSB one if the system is compliant and finally compile from source on other systems.

Installer? No, thanks!

Posted Dec 3, 2004 7:10 UTC (Fri) by tzafrir (subscriber, #11501) [Link]

Here's an installer for you:

cat "deb http://mysite/ a b" >> /etc/apt/sources.list

And then let the user's package management tool (apt-get, aptitude, synaptic, whatever) handle the rest.

on naming

Posted Dec 2, 2004 15:50 UTC (Thu) by zooko (subscriber, #2589) [Link]

I've never looked at Xfce, because

1. I mentally pronounce it "x-feces".
2. I assume everyone else does the same.
3. I assume nobody will be willing to use it or enhance it because of the negative
connotations of the name.
4. I assume that it won't be very good.

Perhaps I should reconsider this chain of logic. But also the developers should reconsider the
name.

on naming

Posted Dec 2, 2004 15:59 UTC (Thu) by zooko (subscriber, #2589) [Link]

NB: the reason the developers should consider changing the name is that there may be other
people who, like me, have negative associations with the current name but who, unlike me, did
not become consciously aware of these associations and reconsider them.

on naming

Posted Dec 2, 2004 17:19 UTC (Thu) by bronson (subscriber, #4806) [Link]

Just think "X-Face". It's much easier.

on naming

Posted Dec 2, 2004 19:04 UTC (Thu) by coolian (guest, #14818) [Link]

I thought you were kidding, in which case it's hilarious, but if you're
serious, seek psychiatric help.

A look at Xfce 4.2

Posted Dec 2, 2004 16:11 UTC (Thu) by LinuxLobbyist (guest, #6541) [Link]

Another feature that this writer is particularly fond of is the ability to switch desktops by using the mouse scrollwheel. Simply hover the mouse over an "empty" space on the desktop and scroll. This feature is available in KDE as well, but it seems to have appeared in Xfce first.

It's available in GNOME as well. I believe it was at least in Fedora Core 2 (Gnome 2.6), but possibly earlier.

Missing desperately: Display manager

Posted Dec 2, 2004 16:28 UTC (Thu) by debacle (subscriber, #7114) [Link]

What I'm missing in XFCE4 is a nice, little display manager. Currently, I'm using gdm (the GNOME display manager) with XFCE4, but it depends on hundreds of GNOME libraries I don't like to have installed. Other display managers lack important features, such as XDMCP. A gdm light for XFCE4 would be really cool.

Missing desperately: Display manager

Posted Dec 2, 2004 21:20 UTC (Thu) by terminator (guest, #2292) [Link]

38 % ldd gdm* | sort -u -k 1,2 | wc -l
72

Configure to run GNOME services - how?

Posted Dec 3, 2004 3:34 UTC (Fri) by liamh (subscriber, #4872) [Link]

"For users that depend on applications that require GNOME or KDE services, Xfce can be configured to run GNOME or KDE services when it starts."

How do you do this?
I just came across this problem today, as I run XFCE and galeon. I want galeon to use xpdf when it encounters a PDF file, but apparently making this association requires GNOME.

Configure to run GNOME services - how?

Posted Dec 3, 2004 17:17 UTC (Fri) by zonker (subscriber, #7867) [Link]

Go to the Settings Manager, click the "Sessions and Startup" icon, click the "Advanced" tab and select "Launch GNOME services on startup." You'll have to restart Xfce, of course.

I try to avoid GNOME apps, as I found that running Totem encouraged GNOME to try to take over my Xfce session... had to delete the .cache file under my home directory to restore things to normal...

A look at Xfce 4.2

Posted Dec 4, 2004 13:30 UTC (Sat) by erich (subscriber, #7127) [Link]

I tried xfce some time ago, but i quickly dropped it again:
they key bindings configuration is stupid. Really stupid. I couldn't assign they key the way i wanted them to be. For example, i couldn't assign a keybinding to switch to desktop 10. Any you could only assign one key to each function.
This "function = key" mapping, it's just stupid. It really should be key=function.

About this "graphical installer" thing:
WHO CARES?
I do not want a graphical installer, especially when it's not even capable of telling me which dependencies i need.
The Debian package maintainers provide up-to-date packages on people.debian.org...
Apparently, building proper packages automatically (for the x>10 architectures debian has) is a PITA due to all the dependencies.

A look at Xfce 4.2

Posted Dec 5, 2004 2:16 UTC (Sun) by sfink (subscriber, #6405) [Link]

I would be happy with xterm if it weren't broken. No terminal emulator I have found so far can deal correctly with multi-line strings. I'm not talking about cutting & pasting -- I recognize the difficulties of that. I'm just talking about typing in a line with more characters than the width of your terminal, then doing some combination of backspacing past a line wrap, retyping text forward past a line end, and recalling commands from history. Perhaps you need a nontrivial prompt to confuse it too? (Nothing fancy, just display the user and part of the path.) Every terminal emulator I've tried gets some part of this wrong, although it always kinda works enough that I haven't been able to track down an exact example of how to make it flake out. I run into this several times a day. It will put the cursor in the wrong place on the line, or make the whole line invisible, or do all kinds of other crap.

I used to use xterm until it pissed me off with this. So I switched to rxvt, which seemed slightly better but still quite broken. Purely because it was preinstalled everywhere I went, I eventually switched to gnome-terminal. Older versions of that were about the best I'd seen, but still broken. Newer versions are at least as bad as xterm. Those are the main ones I've used; the half-dozen or so minor ones have either had that problem or other problems large enough to keep me away. (The emacs shell has never flaked out on me, admittedly. But I'd rather not always use emacs when I want a terminal!) I haven't tried the Xfce one yet.

I probably only notice it because I'm crazy. Wrong in the head. Delusional. But shouldn't this, the very basis of any unix-like environment, work by now? I've heard rumours that at least one or two other people out there besides me still types stuff at the command line once in a while.

A look at Xfce 4.2

Posted Dec 6, 2004 12:53 UTC (Mon) by petebull (guest, #7857) [Link]

> I haven't been able to track down an exact example of how to
> make it flake out.

PBKAC:
info '(bash)Printing a Prompt'

Last 2 entries in the Escape characters table:
\[ - Begin a sequence of non-printing characters
\] - End a sequence of non-printing characters.

You want these around the fancy part of your prompt.

A look at Xfce 4.2

Posted Dec 7, 2004 17:46 UTC (Tue) by arafel (subscriber, #18557) [Link]

As the original submitter says, you can get it with just "user@host:path$ ". It seems to happen for me when the prompt is at the very bottom of the xterm, and you type a line that wraps. konsole 1.2 from RH9 KDE 3.1 then breaks; the one in current Debian unstable doesn't. Haven't tried xterm for a while, but I seem to remember that also had problems.

A look at Xfce 4.2

Posted Dec 10, 2004 2:28 UTC (Fri) by mandrews (guest, #26584) [Link]

I would be happy with xterm if it weren't broken. No terminal emulator I have found so far can deal correctly with multi-line strings. I'm not talking about cutting & pasting -- I recognize the difficulties of that. I'm just talking about typing in a line with more characters than the width of your terminal, then doing some combination of backspacing past a line wrap, retyping text forward past a line end, and recalling commands from history.

Has CDE beem released under a free license yet? If so, I think the dtterm handles all this stuff properly including the cut-and-paste. I had the same frustrations until our work systems were upgraded to CDE from HP-VUE (A few years ago, and yes that is an upgrade).

multi-line strings in the shell

Posted Dec 15, 2004 11:37 UTC (Wed) by Danimalito (guest, #26693) [Link]

If you use 'bash', try adding
shopt -s checkwinsize
to ~/.bashrc

This forces it to check how many lines and columns your terminal emulator is set to, every time it displays a new prompt. It normally does this anyways, as soon as the terminal window is resized (through the SIGWINCH signal). However, for various reasons, this signal is not always properly propagated to the shell, and it gets confused where to place the cursor in for example input that spans several lines.

Speed gone

Posted Dec 10, 2004 0:51 UTC (Fri) by conman (guest, #14830) [Link]

What happened to the lightning speed of previous xfce releases? I tried this version and found it slower than kde and/or gnome. Very disappointing indeed :(

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds