In the beginning was ...

With all the different choices of window manager and desktop environment one can use nowadays, why would you want to use FVWM? I mean heck, it uses a text-based configuration file, doesn't it? Yes. Here's a typical conversational thread that I usually embark on when someone asks such a question in #fvwm on

Person: I'm new to Fvwm, but can't find any graphical config tool?
Me: That's because there isn't one. It's done by editing a text file, which you can either create or use someone else's as a basis.
Person: You're kidding? A text file. God that's just like soooo l4m3. What good is a text editor to me? I'm going to write a config tool myself.

What Person in this instance fails to realise is that configuring Fvwm via a text editor isn't limiting, it's damn powerful. Consider for a moment just why this might be? Why is it that there is no graphical configuration tool for FVWM -- something which allows one to save the state of windows, or to set their attributes correctly? The answer is simple: it's not possible. Let's take an example within the fvwm manpage, say Style options. There are hundeds of these options alone. How would it even be possible to enumerate them graphically onto a form?

Good user interface design, should obey Schneiderman's eight golden rules -- yet if one were to even try to list all the style options, it would break rules two and seven by that reference's definition. So what if the options are not listed graphically for you? I guarantee you that if one were to try, it would become more of a hinderance rather than a help -- a fallacy always apparent in trying to enumerate textual options graphically. Expand upon the logic further -- even if it were possible to somehow change the physics of space such that one could list all the ~150 Style options, how would one then go about representing useful and descriptive information graphically? Anyone can create a GUI that has a series of checkboxes, but how is that of any help unless one knows what each of the options does? One might just as well use a text editor to enter the information. Oh, wait...

But it's not all doom and gloom for those who just can't live without the mouse. There are certain aspects to FVWM's configuration which can be rendered graphically -- this is perhaps best reflected in fvwm-themes - a configuration framework that uses FvwmForm to allow the user to change items, build menus, etc. For those of you that want to get up to speed quickly with FVWM, and want a graphical means, start with fvwm-themes.

However, the drawback to using GUIs to configure window manager aspects is that they can often become self-limiting and perma-enumerate to the user that uses them. Take icewm for instance (chosen at random from the plethora of other WMs that exist) -- that has icepref as a nice means to set options. But if I were using that, I'd be seriously tempted to assume that that was all icewm could do, based on the options provided to me graphically. Of course, the real reason why such window managers use GUI configs is to make up for their lack of functionality. This option paralysis has been observed in Fvwm for the opposite reasons -- by having to use a text editor. But the advantage in that is that it does force one to read around the subject, and often through such practises people go away edified and see the benefit that, actually, GUI config tools for something as powerful as FVWM would be quite a hard thing to implement.

Of course, for most people it's not that they cannot use a text editor to handle such changes made to their config, it's just that their preferences are different. But there's enormous power over doing things in this way. Think about the freedom it gives one, to be able to completely write and customise options at the "low level" without the limiting factors of GUI options. Think also about scriptability -- the means by which config files can (and are) generated on-the-fly using programs such as Perl, or M4. This could not be done easily with other window managers where the options are limiting.

So the next time someone asks why doesn't FVWM have a GUI configuration screen, point them here. Hopefully they'll understand.

-- Thomas Adam, Monday 9th May 2005, 01:57 BST