Thomas Adam's Config

Well, I’ve finally gotten around to writing this up. I should warn you that my configuration and style preferences are in very stark conrtrast to those presented already under the thread. I know I am in the minority with my tastes, and I don’t care. :slight_smile: The following description and links are a direct quote from the FvwmWiki, where this information is also presented. But I thought I’d include it here for completeness’ sake.

Here goes…

  1. Introduction

This is a very old-style theme. I first encountered Fvwm many years ago when the “cool” things were tcl/tk apps and large blocky borders. Indeed, my reasons for using them then differ no more now that I retain that style – it is what I am used to and like. Because I have very low-spec hardware, I like to shy away from using the more meatier Desktop Managers[1]. Oh, and the other thing to note is that I hate transparency. :slight_smile:

When I first used Fvwm, it was under the guise of RedHat’s AnotherLevel config. I still maintain a copy of the original scripts, and many of them went on to form the basis of my own config which I now use, although admittedly I replaced all of the M4 macros with PipeRead to sh, and custom Ruby scripts.

  1. .fvwm2rc

I like light colours. I must have a very low colour perception, since I find dark colours with text on hard to read. The default colours are Indianred for an active window, and Skyblue3 for an inactive window. These were popular colours from some fvwm1 configs from years past. Along with that, active windows have a white foreground, and inactive windows have a black foreground. The titles of the windows use the helvetica font, of size 11, and the title is centred horizontally.

There are three buttons on all the windows. The left-most button (Button 1) is a single verical line which if single clicked, pulls a menu down of operations that can be performed on that window. A double-click closes the window. Button 4 minimises a window, while Button 2 maximises a window. You can see a complete list of vector styles here.

All windows use a border style of Fvwm, although I alternate back to Mwm a lot.

Essentially, I don’t have anything fancy in my config, and indeed, most of the default functionality that Fvwm gives you with no customisation is what I use. I have a root menu which allows access to some grouped functions. Since I use Debian, I used to use the generated menus from the menus package – but the menus got too big, and had a lot of programs in them that I simply didn’t want to see. Also, the depth of the menus got too great, when finding a common application (such as an entry for rxvt). So to that end, I now maintain my own menus by hand.

Menus emulate MWM functionality in all instances, and use a colour of darkgrey as their background, and black as their foreground (hence text colour, also). Each entry has a keyboard shortcut so that I can access it.

I like to use a combination of the mouse and the keyboard to do my work. I have some keybindings, but again, doing nothing fancy. I have two modifier keys. Alt and the left-menus key Super_L. I have added entries to Xmodmap so that I can define separate keybindings for Alt and Super_L. Typically, I have a few keybindings to launch an rxvt instance, move a window around the screen, shade a window in any given direction, etc. I can also stick and unstick a window easily. Using a combination of ctrl + alt + arrow key allows me to flip between desktop pages with ease.

Other window operations can be performed with the mouse. Double-clicking on a window border will shade the window in that direction. This is governed by the function condition $[func.context]. Single-clicking on a border raises the window to the topmost layer.

That more or less (by way of omitting a lot of otherwise tedious details) completes the basics of my config.

The other “on-screen” presense is FvwmButtons. You can see a screenshot of it here. It consists of seven panels that span almost the entire length of the page. The entire thing is then panelised. The FvwmButtons instance contains the following programs:


  • Xbuffy
  • A swallowed instance of rxvt
  • A swallowed instance of another FvwmButtons module containing
    a means of controlling mpc.
  • Xlassie
  • Xloadtime (for my local workstation)
  • Xloadtime (for my server)
  • FvwmPager

The whole thing is sticky, and defaults to a style of StaysOnTop.

Other noteworthy things – I use FvwmEvent to do a number of things. You might have noticed from the buttons bar screenshot that my pager has the title format: Main (xx) where “(xx)” is a number. This number is an indication of all of the windows currently open on my entire desk. I arrange my pager in a 3x3 format (that is, a square, consisting of nine pages per desk.) As it happens, this is more than ample, and so I don’t have any more desks defined.

FvwmEvent just keeps a count of the number of windows. It updates itself as windows are added, and decrements itself when a window is destroyed. The function for it looks like this:

DestroyModuleConfig FvwmEvent-count: *
*FvwmEvent-count: Cmd
*FvwmEvent-count: PassId
*FvwmEvent-count: add_window FvwmCountDestroyWindows
*FvwmEvent-count: destroy_window FvwmCountDestroyWindows

DestroyFunc  FvwmCountDestroyWindows
AddToFunc  FvwmCountDestroyWindows
+ I SetEnv WinNum 0
+ I All (CurrentDesk !Transient) \
    PipeRead 'echo SetEnv WinNum $$$$(($$$$WinNum + 1))'
+ I DesktopName 0 Main ($[WinNum])

And in a similar fashion, I also title my rxvts in this way. They’re titled in the form rxvt_arxvt_z so that I can see approximately how many terminal windows are open. I could have used the Style type IndexedWindowName but I didn’t want numbers as the index, and at present there is no option to supply to that style.

I also like Xteddy, and he stays with me all the time while I work. :slight_smile:

That’s more or less it. A simple setup with no eye-candy that allows me to get on with my work. You can get my current config file here, along with the icons directory which has the png files for the media FvwmButtons that controls mpc. Other than that, there aren’t any external scripts. You can just take the contents of that location as though it were your own ~/.fvwm/ directory.

You are also freely allowed to modify and use the file as you see fit, although I would be interested to hear from you if you do. I’m in the rare minority of users it seems that still likes the so-called “old school” way of working. Oh, and if anyone has any suggestions about what I can put in the panel immediately below the media buttons on my FvwmButtons bar, do say!

A screenshot is available here.


– Thomas Adam

After perusing these forums, I thought I was the only person who was using an old fashion Fvwm setup.

I work with Emacs, Firefox and a handful of Xterms to do web design and hobbist-level Python coding. I have always liked the old Motif look and feel and so that’s the way I have my Fvwm setup.

You can see a full-sized screenshot and my .fvwm2rc file at my lame personal website:

Hello, Christopher!

Thanks for your post – it has made me feel better to know that I’m not alone. Your setup looks cool – I especially like the colorsets you have defined. The blue and grey go well together. :slight_smile:

– Thomas Adam


I noticed that you are a fellow Debian user; that and the similarity in last names is rather an amazing coincidence!

the links to your config seem broken. :frowning:

I know. I will be back on-line in a more permenant nature shortly, then you can get at them.

– Thomas Adam

So? To each their own. I’m sure yours suck just as much. :stuck_out_tongue:

– Thomas Adam

I can’t see the screenshot :frowning:

That is a poor statement, because it’s insulting. You don’t have to say sorry.
Be sure that the appearance isn’t the most important thing of a config. Functionality is much more important.

I also have another very old looking config, which is very fast and handy.
I think that’s the only reason for using fvwm.

I think that a good config it’s a “equilibrium” of functionally and appareance.

Any idea when your going to get your config back up. Id love to take a peak at it. I learned alot from disecting taviso’s config so i can only image the wealth of info that yours has in it.

I am hoping at the latest by mid-October. Cross your fingers for me. :wink:

Then I am afraid you’ll be disappointed. :slight_smile: I really don’t use any “advanced” or nifty features that some people do in their configs. Other than writing a few functions to reposition windows, etc., I am very happy with the MWM-emulation that FVWM uses by default. It’s probably contrary to the advise I give here, but I like things simple. :slight_smile: Ironic, you might say, no? :slight_smile:

– Thomas Adam

@ ThomasAdam

Don’t know if you need it, but if you like I can host your stuff 'till you can get it up yourself again. If your interested, just pm me :slight_smile:


Why, that’s most kind of you, but there’s no point in it, really. I already have a partial mirror here:

… which holds some of what I consider the more pertinent information.

Indeed, I am slightly amused by the sudden interest in my config all of a sudden. I am also puzzled why. Why now? :slight_smile: I had written that post ages ago, and it only got a few replies (I wasn’t expecting many replies, as my tastes are somewhat… unique.)

– Thomas Adam

I love cats … 703006.JPG :stuck_out_tongue:
but… I HATE FISH!! :smiley:

Actually, your tastes aren’t no so unique. I have a config close to yours, and one of my collegues also, which is rather great, if you only count people that really care about choosing and configuring a WM. Most of the other use metacity, fresh out of the box.

Im sure i speak for everybody else when i say that your such a fountain of knowledge that we could learn something from your config. Kinda like how taviso’s config has become the standard for newbies to learn from. Nick Fortune is another that i would love to see but i havent seen him on in a long time. I havent found a config yet that i havent learnd atleast something from. Even if its as simple as how to reicon your windows after your restart fvwm!

blush – why, thank you. :slight_smile: I’ll be sure to upload the latest version of it when I am back online properly (one or two things have changed since my initial post – but not much).

It’s an interesting point though – I suppose one could learn any number of small things from even the most simplest of configs. But I can quite understand how people would easilty dismiss a config through aesthetics only. :slight_smile:

– Thomas Adam

The first 10 or so times i tried Fvwm i was always excpecting it to look and be as fast as any of the *box wm and have the full functionality of the bigger DM. After messing with it for 10mins i always said “man this sucks (again)” It wasnt till i found the forum and the massive thread on the gentoo forums that i decided to give it a REAL try. So i did a fresh reinstall of gentoo and only installed fvwm. It took a few days and may reads of Nick Fortune’s Newbie guide before i was fully conviced that this was better than anything else out there.

I think most people are drawn in by the flash and flare of fvwm in the screenshot thread but when they see all the over welming things that it can do and the hard to read man pages. It scares them away. To be honest i have a really hard time understanding the man pages. Thats y i really enjoy reading your posts because almost every one has has a new little tib bit of info that i didnt understand from the man pages. TheBlackDragon is another poster that i learn quite abit from. There are others but Thomas, Nick, and Dragon are the 3 that i have really learnd alot from

[Nod]. For myself, it was much more of a round-about way. I certainly didn’t start entirely from scratch. I used RH’s AnotherLevel package for a LONG time – customising it with m4 as I went (m4 is an interesting, if not cryptic and often terse in its syntax.) I loved the Lesstif emulation it offered, and my taste and style of my own .fvwm2rc reflects that in small ways.

I did learn the hard way though. The only thing I had to learn from was the man pages, and the mailing-list. I’m sill learning, though. :slight_smile:

Then you’re welcome. (I find it very hard to accept praise). Personally speaking, I know just how hard it is – so if I can give something back to help others who are also in need of help, or whom are struggling, then so much the better. :slight_smile:

– Thomas Adam