Thorsten Zöller

Back to Articles

Software Over Hardware


To me, software is so much more important than hardware. Frankly, I don’t care much about the hardware my software runs on; as long as it works, I’m pretty much fine with it. My needs are so low that I have almost no requirements on the hardware. It does not have to be fast, it does not have to be new, it does not have to be fancy; it just has to work.

Software, on the other hand, is of great importance to me. I would absolutely be willing to trade in better hardware for worse hardware if that would allow me to run certain software. I have rather strong opinions about software, but almost no opinion about hardware. When talking about the latest hardware developments, I would probably be a very boring conversational partner.

It starts with the operating system. Having used various Linux distributions for a long time (ultimately for several years Arch Linux, which is still my favorite Linux distribution), I have finally settled for OpenBSD. I have long and increasingly felt that Linux (irrespective of specific distributions) became too bloated, and OpenBSD is the perfect antidote to that: It is clean, simple and minimalistic. Not everything works perfectly with my hardware, but I’m totally willing to accept that.

As for the programs and tools I use, I prefer CLI tools over tools with a GUI in general. I like tools which do exactly one thing and do it well (in line with the Unix philosophy). I also like the programs I use to have as few dependencies as possible.

So here are a few programs I use on a more or less regular basis, in no particular order:


A terminal multiplexer. Since I spend a lot of time on the terminal, I like to be able to quickly open new terminal sessions. I used to use GNU Screen, but tmux is just better.


My document viewer of choice. Very leightweight, and can be controlled with vi-like keybindings.


My image viewer of choice (when it comes to image editing, which I very rarely need, I tend to use ImageMagick). Very leightweight, but can do everything I need an image viewer to do.


I rarely need a media player, but if I do, I will use FFplay.


I cannot imagine to use any other editor on a regular basis. To me, Vim is an editor that comes close to perfection. I absolutely swear by it. See Grokking the Zen of the Vim Wu-Wei and Why, oh WHY, do those #?@! nutheads use vi? for some reasons for why I love it so much.


I had never used the KornShell before switching from Linux to OpenBSD. On Linux, I used to use either Bash or Zsh (which is very powerful, but at some point I noticed that I simply don’t need its powers). ksh, on the other hand, is very small and still does everything I need (very much like OpenBSD itself).


With just a little bit of exaggeration, the discovery of cwm when I first installed OpenBSD was a revelation. I had used very leightweight window managers for a long time — among them larswm, ratpoison, and finally xmonad (which I really liked, also because it is written in Haskell) — but the tiling paradigm never really worked for me. I was delighted to find this little beautiful window manager in the default installation of OpenBSD and have used it ever since I discovered it. And I absolutely love to have no status bar whatsoever. What had been almost unthinkable before has turned out to be just great — no distractions, just the bare screen.

Then there are some programs which I no longer (or very rarely) use, but did use on a regular basis in the past and which I still like to mention simply because I think they are great tools and worth to be mentioned.


A CLI calendar application. In my opinion, it is as good as a calendar application on a computer can be.


A curses-based client for the Music Player Daemon (MPD) for playing music. I usually don’t listen to music locally on my computer, but if I did, I would use ncmpcpp for playing it.


A CLI double-entry accounting tool, great for tracking finances. Transactions are directly entered and stored in simple text files. Ledger does not modify these files in any way; it’s main purpose is to create various reports based on the data entered.


A leightweight notification daemon. There are very few cases where I consider notifications useful (like reminding me of the battery status of my laptop). These days, I simply use xmessage for these purposes.


The text-based e-mail client. Although these days I mostly use web interfaces for mail (where I miss the ability to use Vim as my text editor for writing mails a lot), I’m really fond of Mutt; I think it must have been in the late ninetees that I used it for the first time.

Finally, I would like to mention the beautiful Solarized color scheme, which I try to use with as many programs as possible (among them Vim and tmux).