Day One with NixOS: From the Minimal ISO to a KDE Desktop with Flakes

In March I wrote about managing twelve machines with NixOS. When I read it again, I noticed that it starts somewhere in the middle: it assumes you already run NixOS, already have a flake, and already know what a module is. If you don’t, reading it is a bit like asking for directions and getting a photo of the destination. And getting started really is the hard part. A graphical installer asks you a few questions and then hands you a desktop. The NixOS minimal ISO doesn’t ask you anything. You get a blinking cursor, a disk and a manual, and the rest is up to you. The manual is good and walks you through partitioning, but then it gives you a configuration.nix and nixos-install, and flakes, which is how I build everything these days, get a single sentence near the end. ...

November 10, 2026 · 18 min · Manuel Herrmann

When the Conversation Becomes the Content

How the stories surrounding an experience can change what audiences expect from it - and what future experiences become. Recently, I found myself forming an impression of a multiplayer gaming project I had barely seen being played. One short video claimed that almost the entire server had been banned. Another suggested the organizer had admitted to being a terrible owner. A third simply asked what was going on, accompanied by a crying emoji. ...

November 7, 2026 · 10 min · Manuel Herrmann

Feeling First: What I Care About When Making a Game

When I start a game, the first thing I write down is never a feature list. It’s feelings. Not one line, not a neat little paragraph, but a love letter - every feeling I want you to have, poured out at once. hook started as a little story: a cabin in the mountains, a dog, a bark in the night, an empty bed in the morning. And underneath it, instead of mechanics, a wish list of moments. Moments that let you pause. Moments that make you hurry. Moments that make you think. Moments that make you dream. And music that makes you feel the whole journey: the exploring, the scenery you don’t want to leave yet, the danger, the mystical, the hollow, the rush, the escape, the belonging, and finally the coming home. ...

October 25, 2026 · 17 min · Manuel Herrmann

The Third Door: USB for the Creality Pika on Linux

In August I wrote a long post about getting my Creality CR-Scan Pika running on Linux, and one section in it had a very confident heading: Why USB Under Wine Is a Dead End. I had traced the problem down to a single unimplemented function, written it up, and made my peace with it. Scanning went over WiFi, calibration happened in a Windows VM, case closed. Then I took the scanner to the office to show it off. ...

October 25, 2026 · 11 min · Manuel Herrmann

DavPunk: A Kanban Board on a Protocol That Has No Columns

I collect hobbies. Soldering, 3D printing, things the house needs, servers that want rebuilding, software I started and put down. Every one of them leaves a residue of things I meant to do, and they all end up on the same list, where most of them sleep for months - the mood for soldering does not arrive on a schedule. Then an evening opens up and the mood is there, and the only question worth answering is: what was I in the middle of? Not what is overdue. Nothing here is overdue, because none of it was ever due. What I need to see is which of these hobbies has something already in flight, and which one has a heap of things waiting to be picked up. ...

September 4, 2026 · 25 min · Manuel Herrmann

Two Doors, One Scanner: Running the Creality CR-Scan Pika on NixOS

I spent the first evening certain it was a udev permissions problem. The second, equally certain it was WinUSB. The third I spent reading OrbbecSDK.dll’s import table and finding out it was neither, and that the thing I had been trying to fix could not be fixed at all. The scanner is a Creality CR-Scan Pika. Creality ships CrealityScan for Windows, macOS and Android, and as of 4.3.1 there is no Linux build and no sign of one coming. The scanner sits on itw, the desktop I actually work on, and the alternative to solving this was rebooting into Windows whenever I wanted to scan something. That is the kind of friction that ends with you not scanning things. ...

August 30, 2026 · 22 min · Manuel Herrmann

One Git Repo to Rule Them All: Managing 12 Machines with NixOS

The Pain Before the Solution I started with Gentoo. If you know, you know: USE flags, emerge --sync, watching a browser compile for six hours, and the quiet satisfaction of a system shaped entirely to your will. It was maximum configuration at maximum cost - every package exactly how you wanted it, every kernel option hand-chosen, every dependency chain personally audited. It was also completely unreproducible. The system on disk was the result of hundreds of commands typed across months. If the disk died, so did the configuration. You could document it, but documentation and reality drift apart fast. ...

March 21, 2026 · 17 min · Manuel Herrmann

DocMan: A Minimalist Document Management Solution

As a German living with the country’s infamous love for paperwork, I built a streamlined Qt-based tool called DocMan to manage my scanned documents efficiently. This post explains how it works and why I created it several years ago—and why it’s still my go-to solution today without requiring any maintenance. The Problem My document workflow starts with my scanner, which connects to my network via Samba and deposits scanned PDFs into an INBOX folder. I needed a lightweight but effective way to: ...

May 8, 2025 · 6 min · Manuel Herrmann

Generic XML Parsing in C++: A Template Metaprogramming Adventure

Some years ago, I found myself experimenting with template metaprogramming in C++. One of the most intriguing projects that came out of this tinkering was a generic XML parser that combined several powerful features: declarative syntax, automatic validation, and bidirectional serialization/deserialization—all without requiring duplicate code. Today I’m dusting off this experiment to share how it works and reflect on how modern C++ features could simplify this approach even further. ...

May 1, 2025 · 5 min · Manuel Herrmann

Building a Modular Emacs Configuration

Maintaining a clean, organized Emacs configuration becomes increasingly important as your setup grows. A modular approach separates concerns, simplifies troubleshooting, and makes your configuration more maintainable over time. In this article, I’ll share how I structure my Emacs configuration for maximum flexibility and sustainability. The Problem with Monolithic Configurations Many Emacs users start with a single .emacs or init.el file. This works fine at first, but as your configuration grows to accommodate different programming languages, workflows, and packages, a single file becomes unwieldy. Common issues include: ...

April 26, 2025 · 7 min · Manuel Herrmann