Personal projects

Some of my current personal projects


A directory bookmarking utility for the command line

Written in: sh/Bash
License: ISC

One very useful feature found in many file managers is the ability to bookmark directories just like pages in a Web browser, making it very easy to access often-used and relatively deeply nested directories quickly.

On the command line, however, this kind of functionality is not readily available. While using the cd command efficiently and working with the directory stack in shells that offer it can certainly help speed up navigation considerably, it is not the same as having a tool that will create persistent bookmarks with user-defined names and make them accessible in a way that doesn't necessarily depend on a particular shell.

dibm offers exactly that. It is a collection of shell functions facilitating directory bookmarking on the command line by combining the use of symbolic links as shortcuts to nested directories with auto-completion of bookmark names (only supported in Bash at this point) for additional speed-up.

The core script was written aiming for a reasonable degree of POSIX compliance and will therefore most likely work in other Bourne-like shells, as long as they support the local command and using arrays. Apart from that, dibm needs the find and readlink utilities to be available on your system.

Download: (.sha256, .sha256.sig)

The latest development version is available from dibm's public Git repository.


A script to facilitate random note-taking in the terminal

Written in: Bash
License: ISC

Quickly jotting down a few notes in their preferred text editor is, in itself, probably a non-issue for most computer users. That said, having to decide on where to save them and making sure they don't get lost in the vast expanses of a multi-gigabyte home directory filled with tens of thousands of files can sometimes make for an uninvited challenge.

mote aims to get these problems out of the way by

  1. storing notes in a pre-defined location in chronological order
  2. making stored notes easily searchable, browsable, and editable

The program will use the user's preferred text editor and pager as defined by the shell environment or via command-line options provided on its invocation.

mote is, however, not intended to be useful for structured note-taking. It is, in essence, just a notepad with date stamps to facilitate immediate, distraction-free “mind-to-file” action, the results of which are to be recovered later and mostly ordered and edited elsewhere.

mote is still in development. The source code is available from its public Git repository.

An ongoing attempt at doing a website right

This site is being built using a still evolving combination of Unix command-line tools strung together in Bash. Manual editing is done almost exclusively in Nano.

There are basically two ideas behind this: One, to preserve the freedom of writing web pages by hand in your favorite text editor, but at the same time provide a remedy for the headaches usually coming with this approach. Two, to produce web pages that are plain and valid HTML and CSS only, but nevertheless have a dynamic appeal.

Pages are written in HTML 4.01 because I'm more than slightly skeptical about the merits provided by HTML5. The color scheme has, for the most part, been limited to the traditional “web-safe” 216-color palette (visited links being the sole exception). This is not so much to ensure compatibility with older systems, but rather because experience tells me that, in a way, limitation is good.

And just in case you should not have a graphical environment, these pages will be fairly readable in your preferred text-only web browser too.

Also, being nothing but HTML and CSS should give them a considerable advantage in terms of rendering speed.

Last but not least, as all internal link paths are relative and none of the site's functionality relies on external resources, you could simply download it and use it locally without any modification. Downloading the whole site can be done using, e.g., wget -r Currently, this will amount to less than 300 kilobytes on the receiving side.


A graphical application launcher (run dialog) written in Tcl/Tk. I'm creating this to eventually replace gmrun on my system. This is, however, not an attempt to create a gmrun clone. Rather, mrun aims to resemble the run dialogs found on Windows as well as in past versions of GNOME, KDE and Xfce. It's taking form slowly.

Contributions to other projects

Apart from my personal projects, I'm also involved with or have contributed to a few others.

Dragora GNU/Linux-Libre

In March 2020, I joined the Dragora GNU/Linux-Libre project.

I had been loosely involved with Dragora since November 2019, discussing the redesign of their website as well as testing the system's installer and suggesting a couple of improvements. In December, I began to work on the installer's messages. There is still a lot to be done there, but since I'm now in charge of building Dragora's new website, I'm primarily working on that at the moment.

Dragora development can be followed via its project page on GNU Savannah. The Git repositories are also available on

Tcl Tutorial

There are some really good books about Tcl. However, if you're a beginner and maybe even new to programming in general, your first steps in trying out a language you come across will almost certainly not involve buying a 500-page paperwork or borrowing it from a library. More likely, you'll search the Web for an introductory tutorial.

The good news are, the maintainers of Tcl offer such a document. The bad news, on the other hand, are that, even as a beginner, you'll notice that it is in sort of a questionable overall state and definitely needs some work.

As I habitually jot down errors and weird spots I encounter in texts I read, my notes on what's wrong with this tutorial piled up rapidly as I went through it. In October 2018, I began to file reports about some of these issues, which were kindly received and fixed by maintainers of the Tcler's Wiki. So, I continued to do that and later registered a wiki account too, enabling me to work on the document directly.

Devuan GNU+Linux

I spent about one year on this project between 2017 and 2018, trying to help work out a solid structure for their documentation, putting together portions of the user's manual to-be and taking care of a few other things here and there.


In 2017, I started working on completing and improving the German translation of the Openbox window manager. Finished in February 2018, it is still awaiting integration into Openbox' official sources. The PO file is available on Openbox' bug tracker.

Last changed: 2020-08-23