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. Listed below are either ones that I’ve stuck with for a while, or personal projects that are still actively maintained. Sometimes I give talks that aren’t about maths; you can also find these here.



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 anywhere—even on your laptop!
Relatedly, I also maintain a qmk configuration for my Atreus 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 program instead—xmobar!
Note that my contributions to xmobar have come to a bit of a halt, as—see #656—xmobar 0.45 and up does not work with musl libc, which happens to be the libc that I’m currently using on my main machine. One day!
As these programs have to work together quite closely, one can’t help but also be a contributor to the latter if one uses the former.

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 other 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

    A major more for .kbd files, serving as the Emacs integration for kmonad’s configuration.
  • 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. Note that, as of commit 2ce27968, this package is built into Emacs!
  • query-replace-many

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


  • Git Introduction

    An introduction to Git for people at the mathematics faculty at TU Dresden.