Tovi Jaeschke

Links:

Recent posts:

Why use minimalist software?

The main idea behind minimalist software is that it should use as little hardware and software resources as possible, and focus on simplicity, clarity and frugality. This means it contains fewer SLOC (source lines of code), and typically strays from the general tradition of making things look fancy, with constant animations and effects. So with our abundance of computing power, memory, and storage space growing every year, why should you utilize minimalist software in $(date +%Y), and what benefits will it bring?

Suckless

Suckless software is a collection of programs that follow the minimalist software philosophy. These include programs like dwm (dynamic window manager), dmenu (dynamic menu), surf (a simple web browser), and st (simple terminal). Each of these programs are written with as little SLOC as possible, which means they are less prone to unexpected errors and bugs. For example, one of the goals of dwm is to never exceed 2000 SLOC. Suckless tools are primarily C programs, that compile into a single binary (including dwm). Suckless tools come with a list of what are known as anti-features, i.e a potential feature that is deliberately left out of the source code due to it not being crucial to the main functionality of the program. These features can later be added through the use of patches, which can be created and distributed by anyone.

I recently took it upon myself to switch from i3 to completely suckless desktop, utilizing all the aforementioned programs, except for surf (for now).

My Experience using Minimalist Software

Overall, I have really enjoyed using minimal, "suckless" software, and will continue to use dwm, st, and dmenu as my window manager, terminal, and application launcher. I did find patching to be a little tedious when the new versions of dwm and st came out, however I believe that discourages the act of excessive patching, which I don`t believe to be a bad thing. I currently have two patches installed on my dwm build (fancybar and restartsig), and three patches on my st build (alpha, clipboard, and scrollback). These patches provide me more than enough functionality for everyday use.

The thing I most like about minimal software is the modularity of each program, and the ability to add functionality when you so desire. I would not say that i am particularly good at writing safe and efficient C, however, suckless programs are written well enough that you can gain a decent understanding of how the code works, so you can add onto it. Something I find incredibly useful is the ability to pipe input into dmenu, to create a selection menu for various different tasks. For example, I wrote a selection of "dmenu-bangs", for several different tasks such as clipboard management, mounting and unmounting drives, and confirmation for shutting down the computer.

Why you should make the switch

Ultimately, minimalist software gives the user greater control over their own devices, allowing them to design a workflow that suits them (as apposed to conforming to a generalized workflow that is more intuitive but less efficient). However this does come at the cost of having to put a little time into actually building and maintaining this workflow. In my opinion, a massive benefit of using Linux is the ability to automate a large portion of your workflow, and I believe minimalist software really encourages that. Minimalist software is not for everyone, and some people will be more comfortable in a more fully featured desktop environment, but if you are accustomed to programming and scripting, i would really encourage you to start switching to a more minimalist and personal workflow.

Download my suckless builds

git clone https://gitlab.com/tovijaeschke/dwm.git
git clone https://gitlab.com/tovijaeschke/st.git
git clone https://gitlab.com/tovijaeschke/dotfiles.git