Hello Wayland. Goodbye Dwm!
So, due to some unforeseen circumstances, I had to switch to Fedora 39 on my primary computer. What this meant was that the default is now Wayland.
All this while, I sat on the sidelines, looking at the X11-Wayland war, somehow imagining that I was completely immune to the volleys. Somehow, I sat with the confidence that I was forever going to be on X11. I have a bunch of tools and configurations all built around the core of my custom fork of dwm that did exactly what I wanted looked exactly like I wanted. If you see the repo, I had 10 years of customization that had matured into a clone-and-go form. Somehow, I thought I was done. This was it. This was going to be my setup for life. Somehow, I forgot that change is the only thing that is inevitable.
So, now I am Wayland and all that worked till now, cannot come with me. Was it a waste? Now, it was amazing while it lasted. Now, it looks like it is a forced goodbye. Where to now?
The first thing that I searched and found was DWM for Wayland. That's great. Isn't it? No - it is not. It would have been if I was the same person I am when I found dwm. I was in college, I had time. Time enough to sit and install and try out a whole bunch of different (tiling) window managers and terminals and so on. Now, I have the wisdom (mostly) of 10 years of tweaking things. Now, I am a more learned man, kinda. Sorta.
So, I went with Hyprland.
Ok, that might sound weird. Hyprland is kind of the most "in" twm in the Wayland world. It seems like something exclusively made for ricing, not at all mature and stable like Dwm. So, what am I talking about? Two things:
- I went with the most famous twm out there, instead of sitting and evaluating options.
- I am taking the extra compute/battery hit to get live/dynamic reloading. No more compiling, stopping all windows are restarting the wm. Change a line in the config and get the new feature without having your work disturbed.
I am now building a new workflow centred around Hyprland. It may take a while to recreate 10 years of mature setup on X11, now all on Wayland, but this time I am wiser. I will take the 80% solution, without worrying about tweaking and customizing everything to exactly my desired state.
My new dotfiles are not out yet. But loosely, the new stack looks like the following:
Alacritty for the terminal. Hyprland came out of the box with Kitty, which to be honest is fine. But, I faced an irritating feature, when clearing screens, especially inside containers/pods (using the docker exec -it
or kubectl exec
commands, kitty ate up a screenful from the scrollback, meaning you just lost some output history. Alacritty doesn't have the problem. A younger me would have explored all the available options and figured out the truly "minimal" terminal out there for Wayland. Now, I just went with the famous one. To be clear, I dislike both kitty and alacritty, since I am of the camp that one does not need a GPU to render terminals.
Note: I did come across the name "foot" and tried it. Same scrollback problem there. I also had Gnome Terminal already installed, so a wiser me might have just stuck to it. But, hey, I am no normie! Also, I couldn't figure out how to add useless padding around (but inside) the terminal, like I have had with st for a long time, so out it goes.
keyd for the Key configuration. Pretty good actually, might have been helpful even on X11.
wofi as the dmenu alternative. Came out of the box. Not that I need to too much.
waybar as a top bar. I have never had a top bar with so many features, but let us do in Rome as Romans do and all that. One of the side effects of this complexity, is that I have to even depend on an external third party tool for pomodoro. Icks me a bit, that I can't write up a quick bash script, but that is how it goes in Waybar land. 🤷
There are a bunch of other small tools, but these are the primary user-facing onces. Obviously, it will take me a bit more time to get adjusted to the new setup and build out things the way I like (may not be exactly, but close enough!). But, here is to a new beginning, though unexpected.