Fvwm Desktop

fvwm-desktop grew out of two things: frustration with KDE, and a wish to lure my husband over to the joys of Linux (so I don't have to reboot so much ;-). I'm happy with a very Unixy window manager, but Michael prefers a more Windozy environment. I set up KDE for him, but on our PII 333, the latest KDE crawls like a snail. It also seems to be perpetually buggy in minor but annoying ways.

So I set out to exploit fvwm's flexibility, and turn it into a functional Windoze-like desktop (fvwm95, only better) using only a glorified Perl script. I'm pretty happy with how it turned out.


The base functionality of fvwm-desktop is menu-building. It works from a directory tree containing subdirectories to define menu structure, and a simple key-value file for each menu item, similar to KDE. The key-value file specifies such details as the full display name for the application, the icon (16x16 icons are kept in $ICON_DIR, 48x48 icons in $ICON_DIR/large), and the command-line to execute. From this, you get the nice alphabetized and iconized menu seen in the screenshot, which can be expanded by simply adding a new file to the menu tree. Also, if you specify "window_id" in the menu file (e.g. "window_id=Netscape*" for any window whose name starts with "Netscape"), fvwm-desktop will set an Fvwm mini-icon for you (used for pager mini-windows, titlebar icons, taskbar icons, etc.), linked to that application's windows. This centralized approach greatly simplifies .fvwm2rc, I found, and I liked it enough that I decided to integrate it into my own setup.

But fvwm-desktop can do a number of other spiffy things with this repository of application data. Right click on the desktop and you'll get a menu which looks a lot like the start menu, and lets you add an icon for any application in the menu to the desktop. You can also add a desktop icon which will pop up a submenu when clicked (note the "Add This Submenu" option in the screenshot).

So how did I get fvwm to do desktop icons? Simple: FvwmButtons with a transparent background! Add the PNG alpha-blending capabilities present in the development version of Fvwm, and you get something quite nice-looking. This approach has a few limitations (in particular, you can't drag the icons around like "real" desktop icons), but for the most part it works well. To take the icon off the desktop, just right click on it and choose "Remove From Desktop".

If you like, you can have a taskbar at the bottom of the screen (this is one of several togglable options under "Desktop Options"), with a "Start" button that pops up the same menu as left-clicking on the screen. You can add mini-launchers to the taskbar: just click on the little arrow to the right of the start button. To remove a taskbar button, right click it and choose "Remove From Taskbar".

Each managed application can also have a default keybinding listed in its menu file.

As I set it up, fvwm-desktop uses a global start-menu repository for all users, but everything else (desktop icons, taskbar launchers) is local to the individual user. A user can also have his own list of application keybindings in ~/.fvwm-desktop/keys, although currently this file must be edited by hand.

You are welcome to download and experiment with the following.

(Note: my icons come from a huge variety of sources and most are not public domain. You should use them only on your desktop.)

Home  |  Blog  |  Nature Photography  |  Quixotic  |  Scrabble Challenge  |  Worlds Apart  |  GtkLife  |  Wordplay  |  Fvwm  |  Contact

Site Updated: 2023/Oct/6
Copyright © 2023, All Rights Reserved. Check the credits before you borrow any of the graphics on these pages.