A couple months ago, I noticed that my computer was not performing as good as it used to. There were noticably longer boot times and it took longer to do certain tasks that used to be lightning fast. Nothing notable had changed with the way I used it. I didn’t install any CPU intensive programs and my workflow was the same as before. At first, I attributed it to the fact that the hardware was getting old. However, when I did a full reinstall of Fedora 32, I noticed the speed jack up again.

This led me to think that the performance hit I had earlier wasn’t due to the hardware, but actually to the software. A quick search confirmed my thoughts. Although processors do wear out over time, the time taken for the processor to take significant wear is (at least in most times), longer than the usable life span of the computer. The processor is not the first thing to wear out. Plus my computer was fairly new, so I didn’t think that was the problem.

So, I decided to keep my computer as minimal as possible from now on. Here are some benefits to digital minimalism which I heard of: - More secure. Less bloat = Less bugs and security holes - Easier to maintain and keep track of - Less disk space used - Performance gains

Keeping a minimal system usually starts at the install. Although the default install for most linux distributions is already significantly more minimal than Windows or OSX, there are still a lot of packages that you will probably never use, or only use very occasionally.

To fix this, I went with the minimal install option on the Fedora live CD. This option is available if you go to the official Fedora website download page and click on ‘Alternative Downloads’. Choose the “Everything” iso option. This will enable you to customize the install to only specific package groups.

I partitioned my disks, created a user and root password, and did the usual Linux install tasks. For the packages, I checked the minimal install and Xorg server options which will only install the packages that you need for a running console environment, and also the barebones X Window system to save us some pains later.

After the install, I booted up the new system and installed a window manager. Since I already had the installer install Xorg for me, I didn’t need to hunt for missing dependencies and most things worked right out of the box.

I use a standalone window manager rather than a full-fledged desktop environment due to the fact that it is significantly more minimal. There is typically little to no dependencies on top of the already installed X server and I am also a big keyboard user so I need keybindings for managing windows.

I currently use spectrwm, so I installed that and then upgraded the system. I rebooted and started the X server, migrated my dotfiles, and that was it. I have a pretty bare bones, minimal system.

After the install, keeping the system minimal is also hard work. I use CLI for doing things as often as I can, for almost all applications except those where I need strong graphics support (eg: web browsing, watching videos, image manipulation, etc.). GUI applications include a GUI, which is going more bloat and pull in more dependencies than a CLI counterpart.

Here is the list of the main applications I currently use:

CLI:

  • Calcurse (calendar)
  • Neovim (text editor)
  • Weechat (IRC client)
  • Ranger (file manager)
  • Tmux (multiplexer)
  • Cmus (music player)

GUI:

  • Firefox (web browsing)
  • GIMP + Inkscape (graphics)
  • Libreoffice writer + mupdf (certain documents where nvim is impractical)
  • mpv (video player)
  • Anki (flashcards)

Those are the main applications I use. If I need others for a specific, one time thing, I will use it in a virtual machine I set up (qmenu + kvm).

To keep my system clean, I make sure to mark packages that aren’t needed (eg: build deps) as automatically installed by using dnf mark remove <package names>. To list packages which you manually installed, use dnf repoquery --userinstalled. I also run dnf autoremove fairly regularly as well.

And that is how I keep a minimal system on Fedora. You may be asking: If you want minimalism, why don’t you use another distro like Arch or Gentoo (or LFS if your really ambitious) where you can choose everything you want, or something else like Alpine Linux which is lightweight by default?

The answer is a combination of many factors. I like the dnf package manager in Fedora. Fedora is relatively low hassle to set up compared to Arch or Gentoo, and the base system has a good balance of stability and bleeding edge. The repos also have strict filtering for software which is not completely FLOSS, which I think is a good thing because you can always add a repo or build from source if you need more software.

So that is my current Fedora install and setup. It works great and I have had no regrets since installing it. Go digital minimalism!