xmonad is an excellent tiling window manager (TWM) written in Haskell. Following my review of TWM’s and publication of my config repository, this post details my usage of xmonad.

Contrib extensions

“Contrib” contains a library of extra functionality to plug into xmonad. There’s a whole lot in there, so I will be discussing some of the modules most useful to my workflow.


The prompt namespace of modules contains a library for displaying input prompts.


Similar to dmenu. Advantages over dmenu are:

By design, its raise feature also doubles up to provide functionality similar to xmonad.Prompt.Window’s Bring option (albeit listing everything in $PATH rather than just the running windows).

I bind this to xK_f — analogous to “find”.


Similar to my wmctrl script, this either brings the selected window to your current workspace or switches to the workspace the window is running in.

I find Bring the most useful option here.

Further reading

I recommend reading Braden Shepherdson’s Pimp Your xmonad series for further inspiration.