September 29, 2012

The xfce window manager

After quickly becoming disgusted with Gnome 3 (and this after being a gnome user for many years) I wanted (and sadly also needed) to find an alternative. Xfce is wonderful -- thank you! - nice to find some developers here whose brains are not badly damaged from substance abuse.

Customizing the xfce clock

You can tell how great xfce is by the fact the only thing that irritates me is that the clock in the upper right corner does not display the date by default. This is easily fixed by a right click on the clock, then properties, then custom format. I use %c instead of the default %R. For more options look at the man page for strftime(). I would prefer 24 hour time, but the 12 hour time given by %c will have to do I guess.

Making sound work

Well, I had a rude shock when I went to watch a YouTube video - no sound! And this is on a system where sound had been previously working just fine with gnome 2 (and worked out of the box I might add).

It was easy to fix -- see my notes on linux sound for details.

Choosing xfce as a default

With the advent of Fedora 16, things are much easier, but you may need to do a "from scratch" install to get things smoothed out. I recommend it in fact. Apparently enough people are screaming in the Fedora teams ear to get them to provide xfce as a supported "fork" (or spoon, or whatever). During the install, when you get to where you have a choice about packages, make the choice to customize packages. Uncheck gnome and check xfce. Now I find that gdm puts me right into xfce without having to make a selection, which is great.

This is probably unrelated to xfce, and I have yet to figure it out. (It is unrelated to xfce, see below.) One one machine I now have an unpleasant mouse behaviour. When I move the mouse to the left side of the screen, it jumps to the top left (as if to be doing a shortcut to the Applications Menu). I don't like this because it prevents me from selecting text easily with the mouse, which I often do. No luck yet on figuring this out.

An update on this mouse behavior, this was some kind of nouveau video driver issue with my Nvidia GT520 card. It got fixed when I installed fedora 17, but only after I installed updates.

Some places to look for xfce customizations are:

Choosing xfce as a default on a system set up to run Gnome

I have transitioned out of this mess, but the notes below may be helpful to someone who finds themself in the middle of Gnome 3 and who is grasping at a way to bail out.

Installing the xfce4 packages

Just do (on fedora):
yum groupinstall xfce

Launching xfce: the easy way

I initially overcomplicated this, being unaware of the following. If you have gdm running, you can look at the login chooser at the lower left and there is a menu to let you choose Gnome or xfce, you do have to make this choice each and every time you login, unless you figure out how to make xfce the default somehow, which as far as I can tell is not possible with the current gnome-centric gdm.

Starting from run level 3

With a horrible window manager like Gnome 3, run level 3 is a sensible place to be starting. As shipped with fedora, the startx command will launch gnome. This might be a good way to leave things if you want to be able to choose between this and xfce4 before making a final choice. To launch xfce, you use startxfce4 instead of startx.

starting from run level 5

If you want to have gdm or xdm running, but have it be able to launch xfce when you login, you have to fiddle around a bit more. It is not that hard and only involves screwing with two files. Note that after you do this, using the startx command from level 3 will launch xfce4 rather than gnome.

The first file is /etc/X11/xinit/Xclients. You need to add a couple of lines to this as follows:

# check to see if the user has a preferred desktop
PREFERRED=
if [ -f /etc/sysconfig/desktop ]; then
    . /etc/sysconfig/desktop
    if [ "$DESKTOP" = "GNOME" ]; then
	PREFERRED="$GSESSION"
    elif [ "$DESKTOP" = "KDE" ]; then
	PREFERRED="$STARTKDE"
    elif [ "$DESKTOP" = "XFCE" ]; then
	PREFERRED="startxfce4"
    fi
fi
A glance at the above shows the lines added to conditionally start xfce4.

The clever reader will figure out what the second file is by looking at the above. You will need to edit or (as in my case) create the file /etc/sysconfig/desktop with the contents:

DESKTOP="XFCE"
That is it, one line, and it should be obvious how to revert to running gnome by default if you should want to.
Have any comments? Questions? Drop me a line!

Adventures in Computing / tom@mmto.org