Simplifying my life
Over most of 2025, I have been on a journey to simplify more things in my life, especially on the digital side.
As the first post of re-vamping my blog here, I wanna just list a few thoughts and insights I had over the last year while trying to minimize the things I need to worry about.
Personal Setup
Let's start with my personal setup. For decades I have been either
driving my own (now unmaintained) window manager, or an extensive
XMonad setup, for the last few years mostly EXWM and at the end
stumpwm.
However, due to this I often found myself tinkering and configuring
until late in the night. Don't get me wrong, I love that stuff, it's
fun. But it also gets in the way of actually getting other things
done. Sure, an elaborate setup for stumpwm might be great, but how
often do I need that mix of tiling and stacking and frames? Not often.
I have already simplified other aspects, so the only things I need are
a terminal, Emacs and a browser for most of my work.
But I also want to be able to quickly understand if something does go
wrong. So although maybe not as powerful as other solutions, I just
went with dwm, st and dmenu. That's all I really need. The
code is literally small enough that it can be quickly perused and
fixed if needed.
Operating System
Operating systems have for a long time been an absolute rollercoaster
for me. Back when I had a crappy old Core2Duo laptop that required
every single ounce of optimization I could throw at it, I went down
the rabbit hole of full Gentoo stage 1 installs.
Once my hardware got a bit more tolerable, I started distro-hopping
for what felt like ages. For a long time I settled with Debian,
then Arch for a while and ended up with NixOS for a few years
until roughly the end of 2024 I'd say.
I fully jumped on the NixOS train. Immutability, declarative style,
yada yada. The finer points of the pros and cons here might be
material for another blog post at some point.
The basic gist is that it felt like I didn't really understand what
exactly was deployed and installed anymore. Sure, it's super easy to
stand up a mail-server in NixOS: basically just enable the module,
fine tune a setting here or there, and Bob's your uncle.
But…what exactly got installed and configured now? What if the module has a bug or misconfigures something internally. Definitely not easy to debug then.
I wanted a system that ticks all these boxes:
- easy to understand
- good documentation
- stable
- secure
- fun
And, I couldn't really find that in the Linux world. And before you
jump at me for daring to say that: I'm not bashing or mocking it.
Linux as of late just doesn't spark joy anymore for me.
I found my solace in OpenBSD and FreeBSD.
Emacs
Yes, the endlessly configurable and Cthulhu-esque behemoth that also
happens to include a text editor is my way of simplifying my life.
Sure, I could achieve similar functionality with the likes of VS
Code or NeoVIM, but then I end up with a clusterfuck of different
configurations.
Lua for NeoVIM and then configuring tons of external tools that
the plugins rely on. Or VS Code and its electron and npm madness
in the background.
With my Emacs setup I learn one configuration language, Emacs
Lisp, and can do 95% of my workload within the same environment.
Got snippets or abbreviations? One plugin or customization that I can then apply to all my workflows.
Getting that setup, especially on the org-mode side, configured to
my exact needs and liking took some initial up-front investment
time-wise, but it has been paying dividends ever since.
Homelab
I will probably write a longer blog post about my homelab setup at a later stage. Anyway, what do you mean "simplify your life with a homelab"!? How on earth does that make sense?
I'll tell you how. Yes, it does require some maintenance and I am tryin to also simplify that aspect this year. But it allowed me to move away and be less dependent on the big companies and their offerings. And by doing that I also had to take a hard look at what I actually need and what I don't. Doing so helped tremendously.
Languages
Same as Linux distributions, I kept hopping from language to
language. I can barely list how many I have been through. I think in
chronological order it must have been:
- Assembly (on a ZX80)
- Basic (don't remember which exact dialect)
- C
- TurboPascal
- C++
- Visual Basic
- Delphi
- Java
- JavaScript
- Shell
- Tcl
- Perl
- Ruby
- Haskell
- Prolog
- Common Lisp
- C#
- F#
- Erlang
- Scala
- Elixir
- Rust
- Zig
- … and some more that I probably have forgotten
But now that I want to simplify, I want to filter down to a small subset of languages that I will give more attention and dive into the deepest crevices of specs, details, expertise.
Common Lisp
My precious, my beloved…my eternal loved language. This is the
language you can pry out of my cold, dead hands. If I need anything
that is more than a shell line, or if I am exploring a new problem
space, or just playing around with ideas: Common Lisp is my forever
goto language.
The interactivity is par none. And instead of adjusting the problem to the language, I can adjust the language to the problem.
So this one will stay in my grab-bag and will be always be at the ready. At least for personal stuff, as work doesn't use it unfortunately. One can dream though.
But this is basically my more enjoyable stand-in for Python and the
likes.
sh
Well, duh, this one has to stay. I do nowadays though try to limit
myself to using plain sh instead of bash. I have seen way too
many scripts that assume that /bin/bash actually exists on a system.
Restricting myself to plain sh instead of bash-isms or zsh-isms
allows me to write my scripts more portable, again simplifing things.
C
I know, way more modern things like Rust or Zig exist, but this
one just keeps on chugging along and staying around. Especially with
my increased interested in actually participating in FreeBSD and
OpenBSD, this language has earned its keep in my roster.
Rust
Nowadays I don't really use it much anymore for personal projects. When it first came out, I was an early adopter, around version 0.4 I think.
I even wrote my own window manager, that I had used for many years, in it. And I love its stability and the compiler and tooling are absolutely chef's kiss. For any bigger, serious project, this will always be at the ready. For one-off stuff though, the compiler gets in the way more than is currently comfortable for me.
Stays in the roster, but used professionally more than personally.
Syntax Highlighting
A fairly recent one, but this has been the easiest timesaver I
think. No theme is ever perfect for me. Prot's modus themes have
been very, very close to perfect for me. So for a long time, I stuck
with the modus themes, specifically modus-vivendi-tritanopia.
Lately though I have been paying more attention to where my focus shifts. I caught myself several times, more than would be comfortable for me, to get distracted or annoyed by how my code looked visually due to highlighting. "Oh, those colors don't align nicely", and other thoughts of that kind. I also seemed to just glance over code I was reading, instead of giving it 100% attention.
I jumped in and removed all color from all my themes. From my editor, from my terminals, everything. Makes me almost wish I had a laptop with an e-Ink screen now to massively save on battery life, but I digress. The jury is still out on the terminal. I might at least bring red back in one form or the other to quickly spot errors when they zip by. But generations before us have lived without color, so it should be doable.
Then I started reading around on the web on how other people who decided to ditch syntax highlighting felt about it after a while.
One interesting article was this one here from Tonsky. Instead of completely eliminating syntax highlightling, at least comments are highlighted. So I adjusted a theme to my liking and kept some of the very subtle highlights for comments and strings.
Time will tell if I stick with it or go back to a colorful world of christmas tree looking code. But at the moment I am very much enjoying it. I seem to get less distracted while working on text and code. Heck, it even kicked my willingness off to start to blog again. And I hope that I will now stick to a more regular schedule of writing new posts. I will also have to go and restore my older posts in the new setup.