Free Software

Free software is quite dear to my heart and so I try to contribute as much as I can to all kinds of different projects. List below are either ones that I’ve stuck with for a while, or personal projects that are still actively maintained.



I’m a maintainer for xmonad, a minimal X11 window manager written in Haskell. In particular, this encompasses the xmonad repository, where the lean core of the program resides, xmonad-contrib—containing lots of user extensions for all kinds of different use-cases—as well as some auxillary packages like X11: Haskell bindings to Xlib.

As I strongly believe in dogfooding, I’m an avid user of course! My configuration can be found here.

GitHub stats for xmonad/xmonad
GitHub stats for xmonad/xmonad-extras
GitHub stats for xmonad/xmonad-contrib
GitHub stats for xmonad/X11


I’m a contributor to kmonad, a keyboard remapping daemon in the spirit of qmk. However, instead of being firmware for a specific keyboard, it is implemented in software and thus works for any keyboard—even your laptop keyboard!

GitHub stats for kmonad/kmonad

My personal keyboard configuration—colemak-dh, with some extras to facilitate more convenient Haskell and LaTeX programming—can be found here.


Since xmonad does not have a built-in status bar, one has to use a third party bar—xmobar is that bar! As these programs have to work together quite closely, one can’t help but also be a contributor to xmobar if one uses it with xmonad.

The configuration I use is available here.

Void Linux

I maintain a few packages for the Void gnu/Linux distribution:
$ xmypkgs

The fact that this includes ghc also means bumping/updating every Haskell package in case of an update—lots of fun!



I’m the author of hmenu, a wrapper for dmenu in the spirit of yeganesh. More concretely, it displays commands in order of usage (with an optional decay for frequency sorting) and can open programs or (given) files inside of your terminal or any chosen program.


cli application to query and filter the menus of the different canteens at TU Dresden.

Haskell Libraries

Emacs modes

I’ve written too many Emacs packages—and none of them popular, at that!
  • kbd-mode

    I wrote the Emacs integration for kmonad’s configuration files—that is, kbd-mode is a major more for .kbd files.
  • arxiv-citation (melpa)

    Generate citation data for pdf files from the arXiv. Additionally, download preprints to a specified directory and open them. Includes elfeed support.
  • latex-change-env (melpa)

    Provides a way to modify LaTeX environments, as well as the display math mode (seeing it as an environment of sorts). This includes primitive label handling: we remember the name of labels and can rename or remember them for later. This means that we can restore old labels after deleting them—very convenient!
  • vc-use-package

    Creates a new :vc keyword for use-package. Leveraging package-vc.el, installing packages from their direct upstream repositories (as opposed to, say, gnu elpa) becomes very convenient. I’ve written about this package here and about package-vc.el here.
  • query-replace-many

    A tiny package that wraps query-replace in order to support multiple matches. I’ve written about it here.