This week has me back exploring the dream of having a workable but easy to configure tiling window manager setup on my machine.
The early days
I’ve done this merry dance before, early on with i3
and exploratory dips into qtile
and awesome
I’m not sure I had the stamina for each of these projects to set up a working system.
Primarily because in those heady early days of my explorations, I didn’t know the following:
- what my actual workflow was
- what functionality I needed rather than just wanted
- whether I wanted to ‘rice’ my system
- the bigger picture of how to tweak all parts into a coherent system
The more I delved into it as a configuration project, the deeper the rabbit hole become. Each tool was a flurry of information and new configurations I had to make important decisions on. Some tools where new and I had to learn those before integrating them into a cacophony of new tools.
I think the snowballing effect of trying to meld together existing tools with new tools and then configure them all to work under a single tiling mechanism without actually knowing how the thing would affect my nebulous ‘workflow’ overwhelmed me totally.
I’d often make it part way and find incompatibilities or outlier obstacles that would also need solving before we could continue with this homebrew assembly of a new way of working.
The halfway house
My failings early on, clouded my apetite for this reoccuring quest to tile up my windows with a manager.
I placated my “side by side window organisation fetish” by implementing a Python based solution on XFCE tiling from within my current desktop environment. Aided by the very talented Sjaak van den Berg and his excellent article.
Tiling in XFCE
https://svdb.co/articles/2015/07/19/tiling-in-xfce/
I started to use this mechanism to get a feel for the tiling setup I thought I wanted, but this ‘halfway house’ meant I could fall back to the comfort of my regular desktop environment if anything went awry.
Getting there
Recently, more and more of my normal workflow takes place within the terminal, what with my obsession with Emacs and Org mode, the Gemini Protocol and embracing the sheer tactile joy of just doing things via the mechanical keyboard. RSS via Emacs & Elfeed. Browsing using Qutebrowser. Music via MOCP. File management using NNN. To name but a few.
The hankering for a smoother tiling mechanism started to grow again.
The majority of the Linux folks I follow on Mastodon and Youtube/LBRY/Peertube channels all use tiling windows managers - so there is always a background yearning to have as smooth as system as they do.
I’ve heard on the grapevine that Suckless’ DWM is the way to go.
And while I admire the suckless ethos, I’m just not comfortable enough to approach system wide configuration of the tiling manager via C code diff patches. I just can’t do it, not yet anyways.
So, another popular choice is Xmonad.
I gave it a shot. It didn’t quite go as planned and having to get used to the Haskell code to tweak it put me off it.
The current solution
I come to the rather rapid conclusion that I just wanted something more straight forward, easier to setup and maintain without having to go deep to get anywhere.
I finally landed upon Spectrwm.
https://github.com/conformal/spectrwm
I must say it has been one of the easier tiling window managers to setup and test. The configuration file is very readable and by default does a lot of things right from the get-go.
It’s only been on my system for a day or so, and I’m still getting used to it. I’ve still got the option to drop back to my normal desktop environment, if needed. But I figured it was worth a gemini post.
I’m rather enjoying the swift freedom having a tiling setup affords. Being able to place application windows where I want them in a couple of keystrokes is a real boon. It makes you feel in control. You spend less time fighting a UI that takes a long way round, or that has an array of icons and desktop shortcuts. More time getting to where you want to be.
Anyway, I’ll give it a shot and will report back - no doubt.