My xmonad configuration (and related files)


My xmonad configuration (and related files)

This repository hosts my complete xmonad configuration, and also serves to document my trials and errors as I attempt to make everything work exactly the way that I want. Perhaps it will be useful for other (novice) xmonad users.


  1. Check out the repository to some location ${REPO_DIR}.

  2. Make {HOME}/.xmonad a link to ${REPO_DIR}:

       ln -s ${REPO_DIR} ${HOME}/.xmonad
  3. Restart xmonad:

       xmonad --recompile && xmonad --restart

Configuration files

  • xmonad.hs: the main configuration file for xmonad.
  • bin/: supporting scripts.
  • etc/: additional (non-xmonad) configuration files.
  • lib/: custom configuration modules that are used by xmonad.hs.
  • share/: supporting files (eg, application menu entries).

Provided scripts

A number of supporting scripts are provided, to perform tasks such as window management:

  • select a background image at random.
  • launches trayer with the desired configuration.
  • adjust the position of the trayer window.
  • add space to xmobar for the trayer window to occupy.
  • turn wifi on and off using NetworkManager.
  • lists the windows on the current workspace.
  • uses dmenu to list the windows on the current workspace and activate the selected window.

There are also several scripts for interacting with Music Player Daemon via the mpc client:

  • displays media notifications.
  • triggers media notifications, such as identifying the currently-playing song.
  • hides media notifications.
  • prompts the user to select a song to play from the current MPD playlist; note that this requires a custom version of dmenu (see note, below).

There is also a script for scraping live sports scores:

  • currently supports cricket scores via ESPNcricinfo and ice hockey scores via

Supporting tools

  • autorandr: a tool that automatically selects a display configuration based on connected devices.
  • dmenu: a keyboard-driven menu, used to here to select windows from the workspace.
  • NOTE: the script requires a custom version of dmenu that supports the -j command-line argument.
  • dunst: a lightweight notification daemon.
  • feh: used to set the desktop background.
  • gmrun: an application launcher with a searchable history.
  • kupfer: a query interface for applications, documents, etc.
  • trayer: a simple icon tray for programs such as nm-applet.
  • wmctrl: a command-line tool for interacting with a window manager.
  • xmobar: a minimalist textual status bar.

Useful references


The contents of this repository are distributed under the conditions of the BSD 3-Clause License (see the licence template).

Copyright © Rob Moss, 2011--2014.

<!--| Definitions of URLs cited above. |-->