My last post was about the range of window managers available on Linux, and how varied they can be. Having settled on using Xmonad I have been on something of a learning curve, and I know that I still have a way to go before it is everything that I want from my primary interface with my computers.
Using Xmonad is really very fast. To a certain extent this appears to be down to the fact that you only go around launching the things that you really need to hand, rather than starting stuff just because it is there. One example that I discovered today was that central pillar of my computer use, Dropbox. Today I knew that I had updated the contents of my Dropbox folder, but hadn’t seen any confirmation of the fact on my work desktop. To fix this I just needed to launch the Dropbox daemon, but, importantly, this hadn’t been launched at startup (which meant that it wasn’t either impacting on my processor cycles, or my network connection). Xmonad uses screen real estate in a very interesting way. When you start your first program on a workspace it will open full screen, taking the whole screen, and starting maximised. When you start the next program then the usual approach is to split the screen into two vertical panes, one for each program. Things get a little odder when you add subsequent programs, but in my configuration the left hand pane continues to use half the screen, and extra programs will take up progressively smaller areas in the right hand area. This works very well on my iMac at work, where the very large monitor feels expansive, even when I have a browser window and mail client on the same screen. The big win for Xmonad comes when using multiple workspaces. I have access to up to 12 windows, and I can move programs from whichever workspace they are on, to another workspace simply by holding down the modifier key (the Windows button) and hitting the function key for the workspace that I want the window moved to. Switching to the other workspaces is simple to, hold down the alt button and the appropriate function key. Switching a program to fullscreen (without shuffling other programs on the same workspace off to other workspaces) is a simple Windows key + space bar cycle.
There is really only two negatives with using Xmonad. The first is not the fault of Xmonad, but is a combination of the configuration used for my setup and my laptop. The problem is that my Dell laptop requires the fn (function) button to be pressed when selecting one of the function keys. This means that when I am using my laptop the buttons for switching workspaces or moving windows to other workspaces are more akin to a vulcan death grip, holding down the function key, either the Windows key or alt key and then the function button. The equivalent on my desktop computers is much simpler and typist friendly. The other issue is the learning curve. Xmonad is completely unlike any classic Window manager (Gnome, KDE, Xfce, Windows (3.1 style or 95 style). In some ways it feels a little like when I first used Vi. I entered the command from the command line, and was presented with a blank screen with a column of tildes on the left. Xmonad is just as terse, and is waiting for just as arcane a command sequence to be brought forth. But, like Vi, the time it takes to familiarise yourself with it is time well spent. And at some point I will try hacking the customisation files (I found the ones I use at the moment on-line). Then I can really be a master of my own destiny.
I have just thought of one other issue, which largely affects those pieces of software which open large numbers of dialogue boxes. For me the most obvious example is ‘The Gimp’ image processor. In some circumstances launching Gimp will leave the user with a stack of small windows containing the various dialogue boxes. In amongst them will be the image, displayed at dimensions more appropriate for a thumbnail. This is easily fixed by only opening Gimp in a workspace all on its own, but it is a little surprising the first time it happens to you…