FVWM configuration

Vincent Bernat

There is actually some buzz around GNOME 3 and the new release of Ubuntu switching to Unity. I thought this was a good occasion to make this small post to tell that I still uses FVWM whose latest version was released a month ago.

FVWM is a very old window manager. So old that nobody really knows what the F stands for. It comes with an ugly configuration by default and can be configured to look even uglier. However, FVWM is powerful and highly configurable. Moreover, it is pretty lightweight.

My FVWM configuration#

My configuration of FVWM is available on GitHub. It requires the use of fvwm-crystal. If you are running Debian or Ubuntu, there is a package for this. This is a set of powerful configuration files for FVWM which add a lot of goodies and themes. Unfortunately, the project site seems to have disappared. You can still grab the sources from your nearest Debian mirror.

While these configuration files were great, I did not like to have such a complex desktop with all these icons and menus. However, what is great with fvwm-crystal is you can overlay your own configuration. If a file is present in your home directory, it will take precedence over the one installed on the system. So, I just wrote a new recipe.

What you may want to steal from my configuration is the ability to alter the configuration depending on the fact that you are using one or two screens. With one screen, you get:

  • an application panel (a launcher bar) on the upper left corner;
  • an icon manager (which will contain iconified windows) on the upper right corner;
  • a systray on the left of the icon manager;
  • a pager (which shows various desktops) just below it; and
  • two icon managers (which act as a taskbar) on the bottom, one for regular applications and the other one for terminal windows.
Screenshot with one screen
One screen setup of FVWM

With two screens, the organization is different. The two icon managers at the bottom are on their own screens. The pager is between the two screens and the other elements are on the upper left of the right screen.

Dual screen setup of FVWM
Dualhead setup of FVWM

If I am using a single screen and I plug another one, I do something like this to get my setup updated:

$ xrandr --output  VGA-1 --auto --output DVI-I-1 --auto --right-of VGA-1
$ killall trayer ; FvwmCommand Restart

I also uses conky, a light-weight system monitor. It is started in my .xsession, not through FVWM.

Building wallpapers for dual-screen#

One difficulty with a multi-head setup is “how to get the background set properly”? I have made a small script for generating one. Use it like this:

$ ./build-wallpaper.py -d ~/.fvwm/wallpapers -c -t ~/tmp/mywallpaper.png

It will randomly select two wallpapers and put them together to look nice on your dual-screen setup. It will also correct the aspect ratio, either by cropping the image or centering the image.

You need the following dependencies to make script work: python-xpyb and python-imaging.

Update (2011-05)

Thomas Adam pointed to Nitrogen, a graphical wallpaper utility supporting multi-head setups. It is a great tool if you want to set manually your wallpaper but it does not allow you to select a random one.

Update (2021-09)

I am now using an updated version of this script with i3.

Nowadays, I grab most of my wallpapers from InterfaceLIFT.