Xmonad & Keyboard goodness

For sometime now I’ve been using the Xmonad Window Manager on a vanilla X install.   Thanks to MrElendig’s & BrisBin’s example config files for Xmonad & all the other bit’s & bobs, I’ve had a perfect setup for some 2/3 years.   Although, before that, the out-of-the-box set up is just as great.

Mapping applications to workspaces, switching & opening windows via the keyboard bindings and the shear speed, stability & flexibility of Xmonad makes it an absolute dream to use.

I spend some time in RDP sessions with Windows Servers and alike, that also work perfectly.  For example, I have a keybinding that opens / focuses a specific server and the regular windows Alt+Tab binding all work I can issue a re-build in visual studio and then using the Xmonad bindings I can switch back to Chrome to test the changes.

As you would imagine the terminal control is also superb.  I opt to use urxvt & vim as the editor.  I spent some of the past 1.5 years writing a distributed application in Go lang.  And again those key bindings make everything very smooth.  One to build & fire off the tests, another to distribute it to the servers and another to restart the processes. Each of which focuses the respective urxvt terminals so I can see the output of the scripts.  Infact during this kind of development I only ever touch the mouse when I need to click a link on a webpage in a browser.

I think one of the killer features, for me, was being able to create a single key binding to switch all 4 of my displays to different workspaces.  In practice I only switch 3, the 4th stays on irrsi / skype / evolution / gmail.  But the others switch between each of the different projects that I’m working on at the point in time.  If I get a message from someone that there’s a bug in need of a fix in Project A while I’m working on Project B, a single tap on the keyboard and I’m fixing & pushing a patch in moments.

Okay, I’m sounding like a fanboy, I guess I am, in an effort to try and sound reasonable I do have one issue with it.  However, it’s not Xmonad, it’s Haskell.  Xmonad is written in Haskell and any bespoke configuration you do is also in Haskell.  I’ve managed to get my head around the syntax, but that said it’s still not the most pleasant to read (yes I’m much more used to a C-Style syntax).  While I said out-of-the-box Xmonad is great and it is, to get the the kinda benefits I’ve cited above you really need to spend sometime thinking about what you use and how best to automate some of those pesky & annoying window management tasks.  Then you need to try and implement them in Haskell, and while it’s most definitely possible the learning curve isn’t flat!

Go on give Xmonad a Go!

 

This entry was posted in Linux. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>