On digital minimalism, Linux, NixOS and Emacs

Introduction

I’ve been reading and listening about Minimalism and Digital Minimalism for a little while now. I’ve watch some Matt D’Avella youtube video (and documentary), read Digital Minimalism from Cal Newport, and read a bunch of articles and blog posts.

I wouldn’t say I am a minimalist, neither am I a digital minimalist but it is something that is a bit appealing and I feel I am slowly taking inspiration from those. I’ve started reducing to a minimun what my smart-phone does, I’ve reduced the number of gadgets I’ve add over time. But in this posts, I am going to focus on my systems and tools — this means Linux distributions, Emacs and other tools.

A little bit of history (or context)

I’ve been using GNU/Linux for ages now. It has been around 22 years now that I discovered Red Hat1 Linux, 5.2 at the time. I’ve use it as my primary operating system almost ever sync. During that time, I’ve tried so many distribution: from Mandrake (later Mandriva), to Debian (3.0 -> 9.0 on some servers) and Ubuntu (on the first ever public release), with a long time on Gentoo and later Archlinux. I’ve used Gnome, KDE, wmii, XMonad, awesome-vm. I’ve used bash, zsh, fish, switching from one to another multiple times. I’ve used Emacs, vim, IntelliJ, Eclipse, VSCode… My gentoo/archlinux days made me try and use a lot of tools (screen, tmux, …) and customization.

I had the habit to customize everything, down to the theme and icons I use. There was a time where I would patch and re-package some GTK themes and icons set. I had to customize everything, that was my learning experience. I would often break things and have to re-install the system — and it was fun 😎.

But the more I grew, the more I worked for different companies, the less time I had to do this. I was also learning a lot about tests, reproducibility at that time. My will to customization and instability slowly faded, I wanted to be able to focus on what mattered, and not loose time on silly things that I would break soon after making it.

Minimalism and Digital Mininalism

Let’s try to define really quick what is minimalism and digital minimalism about.Digital minimalism is Minimalism in the digital world, and minimalism can be seen as a Framework for Decision Making.

Every decision we make is constrained by limited resources. Money, materials, energy. Even the richest man in the world is limited by time, and has to make decisions accordingly.

Here are some factors that make minimalism well suited for decision making:

  • Practicing minimalism helps develop an improved ability to discern what’s important and what’s not
  • It becomes easier to let go of ‘sort of important’ things
  • What you choose to keep is a reflection of your values

In a gist, Digital Minimalism is about making conscious choice of what you use and what you do in the digital world, a world of abundance (information, software, …).

Let’s take two examples: our desktops and our phones.

On desktop, digital minimalism can be something like the follow blog post : Tech Notes: The Anti-Dashboard Manifesto.

Now take that reasoning further: It’s not useful to reserve a portion of my screen for displaying which applications are running, as the things that are running are visible and the things that aren’t visible can be found when necessary. There’s no need for an icon displaying wifi status; if I’m connected it’s uninteresting and if I’m not connected I’ll surely discover it if I attempt to use the internet.

I took this reasoning to its conclusion. I run my computers with the screen blank except for the apps I run, and the apps I run I configure to display a minimal amount of information. I think of this as being anti-dashboard: against the cognitive clutter of extraneous information. My computer is not a cockpit and I am at my best when I’m only thinking about the single task at hand.

This is taking things a little bit too far for me but it does resonate with me, and as you’ll see in the following articles (and on my configuration), I share some of Evan’s belief. By default, my desktop do only show a background (be an image or a color) and anything related to time, battery and other status is a keybinding away (the Win key).

And on the phone: How to make yourself happier by making your iPhone worse | Robert Heaton — which I followed almost word for word, but this isn’t the subject of this post.

Emacs, Nix, NixOS, home-manager and other tools

How a GNU/Linux distribution like NixOS comes into this. First, let’s see what I want :

  • A system that is tailored to my needs, that makes me efficient.
  • A system that is customizable, to answer the previous item. I want to be able to modify the default behavior if it doesn’t suit me.
  • A system that is reproductible and easy to replicate. If I change my hardware, or if I need to re-install my system for any reason.
  • A way to share configuration on my infra. This is probably the developer speaking, but I want to write something once and re-use it several times.
  • A developer environment that is reproductible, on-demand and safe.
  • Use defaults of the software I use as much as possible. This one is tricky to achiev for several reasons:
    • I am used to customize everything (easy to fix)
    • I use a custom keyboard layout (bepo), so if I go with default keybinding, I will have the wrong muscle memory (and they could be not optimized either)
  • Hackable tools that I can manipulate as I want.
  • Use the right tool at the right time, trying not to reinvent the wheel.

As it turns out Nix and NixOS are giving all the components required for my almost ideal setup.

If you complete that with a not really minimalist editor, called GNU Emacs, you’ve got a pretty composable system without leaving Emacs. I’ll dig more into my Emacs configuration and my NixOS setup in different posts — and on the configurations pages — but my take lately is to try to do with what is available (as built-in, in Emacs for example). After reading the docs, if it’s not sufficient, I may look for an external module or tool.

Conclusion

This was a weird post that mixes up tooling, minimalism and thoughts. It’s definitely not what I initially envisioned. But I’m hoping it introduce a bit my take on things.

Footnotes:

1

And I now work for Red Hat Inc., what a journey 😝