Best of both worlds - A tiling window manager configuration

Hi, I should say first that I don’t use fvwm so much anymore since I switched to Windows 7, but I thought since I had extensively tuned my configuration a while back I should share it with you.

Basically I was always fascinated with the idea of using a tiling window manager, but on the other hand was too lazy to give up the comforts of fvwm. So I tried to bring as much tiling functionality to fvwm. Here is a little summary of the resulting configuration:

Like in the “real” tiling window managers, one can switch between tiling mode and floating mode in my configuration. This can be done on a per screen basis (switching to tiling mode in one screen doesn’t affect the other screens). Additionally, individual windows can be set floating when in tiling mode (either using keyboard shortcuts or by configuring some applications like mplayer to always be floating).

Overall the setup is aimed at being simple and clean. The only screen space used by the window manager is a small buttons bar at the top containing the pager, an icon manager showing the windows on the current screen, a system tray, a clock (and battery status), and a button indicating whether the screen is in tiling or floating mode (which can also be used to toggle between the two).

My current setup defines the workspace area as 2x2x1. I.e., I use two desktops with only 2 screens each. By default only the left screen of desktop 0 starts in tiling mode (can be changed via an environmental variable set in the configuration).

Per default the following keybindings are used.

#      Keybindings: Tiling-Related:
#                     Alt+Space:       Switch current screen between floating/tiling mode
#                                      (can also be done using the indicator-button in the
#                                      right upper corner of the button bar).
#                     Alt+Shift+Space: Switch current window between floating/tiling 
#                                      (only works when in tiling mode)
#                     Ctrl+Alt+Enter:  Make current window master
#                     Alt+L:           Increase master area
#                     Alt+H:           Decrease master area
#                    Selecting windows:
#                     Alt+K:           Select next window clockwise
#                     Alt+J:           Select next window counterclockwise
#                     Alt+Ctrl+K:      Move current window clockwise
#                     Alt+Ctrl+J:      Move current window counterclockwise
#                     Alt+Tab:         Cycle through comple window list (including minimized
#                                      and other screens)
#                    Navigating workspaces:
#                     Alt-Right:       Go to right screen (alternative binding])
#                     Alt-Left:        Go to left screen (alternative binding: Alt+[)
#                     Alt-Ctrl-Right:  Go to right screen and take focused windows with you
#                     Alt-Ctrl-Left:   Go to left screen and take focused windows with you
#                     Alt-Down:        Go to next (secondary) desktop
#                     Alt-Up:          Go to previous (primary) desktop
#                     Alt-Escape:      Go to last screen
#                    Window operations:
#                     Alt+M:           Maximize and set floating
#                     Alt+T:           Titlebar on/off
#                     Alt+S:           Toggle Sticky
#                     Alt+X:           Minimize (retrieve using the taskbar or alt+tab)
#                     Alt+Shift+C:     Close (alternative shortcut Alt+F4)
#                     Alt+LeftClick:   Move window and set to floating
#                     Alt+RightClick:  Resize window and set to floating
#                    Other:
#                     Alt+P:           Execute command
#                     Alt+Grave:       Toggle Background console
#                     Middle-Click root window/titlebar: Toggle Edgescrolling
#                    Applications:
#                     customize in the keybinding section

I’m currently still cleaning up the configuration a little bit. As soon I’m done I will post it here.

Here are some screenshots (with different colorschemes):

E16 based colors:

Zenburn based colors:

Windows based colors:

I’ve uploaded the code to github:

Interesting, but it seems to me FvwmPiazza is the better thing to use.

– Thomas Adam

Wasn’t aware of that one, looks like I could have saved me some work. But from a quick look into that: you can only apply different tiling models on a per desk base with piazza? I most of the time stay on one desk and switch between pages, so I kind of like that in my setup the left page can be set to tiling (where I do most of my coding), and the right page is set to floating (being home of my browser etc).

Not quite true, you can do a bit more with it than that.

Your approach is nice, but I can already see it’s buggy, unfortunately. I would urge anyone serious about even trying to coerce FVWM to act like a tiling window manager to just use FvwmPiazza.


– Thomas Adam

Would be interested to hear about if you’ve found any bugs…