Corey Stephan, Ph.D.

Free & Open Source Software, GNU/Linux

Replacing Manjaro i3 with an (extremely) minimal, custom OS for portable work: spectrwm on Debian 10

Corey Stephan

Until recently, my favorite GNU/Linux distribution was Manjaro, which is based on Arch Linux. Manjaro is to Arch as Ubuntu is to Debianan overhaul of the parent distribution that is intended to be intuitive for (nearly) all users and immediately functional on (nearly) all desktop systems.

Manjaro with i3wmmy first tiling window managerremains my OS for work on my home-built desktop. Manjaro’s brilliance is tripartite:

  1. Manjaro comes with glorious presets. Until recently, especially with the minimal .iso that is available for most editions, few default packages ever have seemed extraneous. XFCE is the flagship desktop environment, and KDE and GNOME editions are also maintained by the core team. I used all three before transitioning to i3. Moreover, the various community editions (including i3) are not unrefined.
  2. Manjaro makes using a distribution like Arch a viable option for someone who needs to sit down and work without worrying about OS maintenance. Volunteers delay Arch’s package updates just long enough to test for points of instability. Relative to other rolling release distributions, Manjaro is more leading edge than bleeding edge.
  3. Access to the Arch User Repository (to which I have contributed in a modest way) is a benefit that only Arch or an Arch-based distribution can boast. The AUR is a crown jewel of the free and open source software movement.

Yet not all is perfect with Manjaro:

My search for a different distribution to install on my laptop was not complicated. Ubuntu has many of the same problems as Manjaro, and a step into Ubuntu would have seemed to me like a step into even more bloat. However, Debian, Ubuntu’s parent, is perhaps the most trusted standby of all GNU/Linux distributions. Debian is not better than Manjaro in some absolute way; rather, it has its own pros for someone who wants to use an ultra-lightweight, highly stable OS for academic writing in multiple locations (library, office on campus, etc.):

  1. Debian is unshakable. In fact, the Stable branch of Debian is so slowly updated that it is unsuited for use cases that require a new kernel with up-to-date packages (engineering, gaming, etc.). An update in the Debian Stable branch simply will not break one’s system. Further, since updates to Debian Stable are few and far between, I now have more time available on my laptop to focus on work.
  2. Debian is ubiquitous. I cherish the AUR, but there is also something endearing (and helpful) about having a gargantuan list of packages available in my distribution’s official repositories. Debian also receives official support from nearly all GNU/Linux software developers who do not submit their work to its repositories.
  3. Debian is lightweight. Debian only comes with the packages that Debian needs.
  4. Debian’s developers are zealous about the free and open source software movement. Debian does not come with any non-free packages, and it never will. Neither Manjaro’s developers nor Ubuntu’s can claim the same.

Thus, my choice was Debian. However, there are myriad options for window managers and full-fledged desktop environments. Was I going to stay with i3wm? Was I going to move to XFCE? As if by Providence, the following video from a favorite Youtube channel of mine, DistroTube, appeared as I was trying to make this decision: “Spectrwm Is An Impressive Tiling Window Manager.”

Derek Taylor, the personality of DistroTube, does not exaggerate. spectrwm is (extremely) minimal, but it also boasts an impressive feature set. Here are my 3 favorites:

  1. spectrwm is a dynamic tiling window manager. Whereas i3 and other manual tiling window managers require the user to move each window to a sensible location on his own, spectrwm automatically assigns a parent window (the first window opened in a workspace) with children (subsequent windows opened in that workspace) opening (by default) to its right-hand side (from top to bottom). The user is able to change the layout with a quick keyboard shortcut, while preserving the relationship between the parent and children. I have found that I prefer dynamic tiling (spectrwm) on my laptop’s small display and manual tiling (i3) on my desktop’s large display, since I appreciate dynamic tiling for using (relatively) more workspaces with fewer windows per workspace and manual tiling for fewer workspaces with more windows per workspace.
  2. spectrwm has a tidy status bar that is customizable with a short Bash script. The sample script that comes pre-loaded is fine for someone like me who only knows a bit of Bash; I was able to edit it for my own use without difficulty.
  3. spectrwm has a legible, intuitive configuration file. Customizing keybindings, changing colors, and all the rest of the things that someone who has used a tiling window manager would expect to be able to do are straightforward. I think that spectrwm is even easier to configure than i3wm, which is famous for its foolproof configuration.

To install and configure Debian 10 with spectrwm, I used different parts of the following guides:

  1. Install i3wm with Debian 10 (Buster)” by Miguel Sampaio da Veiga on Medium. The basic steps for installing Debian and any tiling manager on top are the same, so this was my main guide.
  2. linux dabbler’s “SpectrwWM initial setup and config on Debian” and “Customizing the SpectrWM Bar” on Youtube. These instructive videos pertain exclusively to configuring spectrwm in Debianthat is, the window manager itself (configuration file, basic usage, etc.).
  3. Derek Taylor of DistroTube’s “Discovered Some Cool Stuff in Spectrwm and Qtile” on Youtube.

Following the first guide in particular, I had to choose my suite of foundational (core) software:

I decided to favor GTK whenever I need to choose a GUI application. For a system-wide GTK theme, I chose Blackout, which is (as the name suggests) a true black theme. Everything that I can theme, including Dillo and urxvt, is straight black with white text. I have spectrwm configured with a small, subtle royal purple border around both windows and the status bar. I use the same shade of purple in my simple i3lock Bash script (‘i3lock-corey’). Black, white, and purple—these are my desktop’s only three colors. Black is energy efficient and easy to configure. White text on a black background is legible. Purple is my favorite color.

Finding a viable system-wide font was tricky. I sought a serif font with full support for both Greek and Latin. For the font to look as intended in both the terminal emulator and the spectrwm bar, it had to be monospaced. UMTypewriter was the only font that I could find that met all of those requirements. If anyone is familiar with a smoother, more legible font that could replace UMTypewriter, please let me know in the section for comments below.

One challenge that I did not anticipate has been managing file defaults (e.g. automatically opening an .odt file in LibreOffice Writer from ranger or xfe). If anyone knows of a tool to help with that in Debian without a full desktop environment, please let me know.

Overall, I am pleased with the result of this project. Debian is a terrific operating system, and spectrwm is, as Taylor titled his video review, “an impressive tiling window manager.” Doing academic writing while on the move now should be a more pleasant experience for me than it ever has been before.

Deus vos benedicat,
Corey Stephan

Tags:

Leave a Reply