Back from Hyprland to Sway

After a brief experiment with Hyprland, I’m back to using Sway. My experiment lasted less than a month, as I hoped Hyprland’s window selector would resolve my window-sharing woes.

It turns out it wasn’t, because the first week back at work I had the need to share a slideshow in full screen. Then it doesn’t matter if you can select a window anymore. So my workarounds with Sway would have worked in that use case while my Hyprland set up… didn’t.

Detour via Cosmic

System76 announced Cosmic in an Alpha version which seemed fun to experiment with. So I’ve pulled in the flake for Cosmic to try it out. It was fairly straightforward to set up, configure and use. However it has some bugs (all known upstream) that I find hard to accept for daily use. But it gave me some inspiration and ideas at least for things I want to have in my desktop.

After experimenting with Cosmic, I decided to return to Sway, but not without incorporating some of the ideas and inspirations I gained.

Even though I’m not using Cosmic, I remain very impressed with the work that System76 has done in terms of establishing and building a new desktop environment for the modern Linux desktop.

The Ultrawide Monitor Challenge turned sideways?

I was listening to a Linux Podcast named Linux Matters where they mentioned a computer monitor named LG DualUp and tempted as I was… I got two of them for myself as well. So instead of an Ultrawide challenge I now have an Ultratall challenge which isn’t much different from wide when it comes to screen sharing. However, I do have pre-existing workarounds for that.

So now I have 2 monitors that both have the aspect ratio of 16:18 and the resolution of 2560x2880. So I basically have 2 QHD panels above each other, per monitor. It’s a glorious set up with a lot of height for code and terminals.

Upgrades to my Sway session

Replaced lightdm with greetd

I’ve for a long time used lightdm, but I’ve never actually managed to log in through lightdm. Not sure why. However, that has very rarely been a problem because I’ve have had it set to auto login anyway which has worked fine.

So it’s a bit of an upgrade to switch to a login manager that works for me even though I haven’t found any settings for auto login.

Keyboard configuration

While on Cosmic I never figured out if I could use my custom xkb configuration file to configure my keyboard layout as I used to on Sway. So I found out how to configure it as I want it using xkb options instead.

input "type:keyboard" {
  xkb_layout us
  xkb_model pc105
  xkb_options compose:102,compose:sclk,ctrl:nocaps
  xkb_variant dvorak
}

The bit I was having a hard time to find was compose:102 that maps the “Less Then, Greater Then, Pipe” or LSGT button to Compose.

And with this I’ve also found the option console.useXkbConfig in NixOS to pick up the console keymap from the services.xserver.xkb options so now my Caps Lock actually behaves as Control… even outside the graphical environment.

Theme

I’ve started to unify applications around the Catppuccin theme, it may be a bit pastel for me but it seems to have enough contrast. It’s also nice and consistent and it has a Nix Flake that helps a lot with the set up for different applications.

Now, the same theme is applied across the TTY, Plymouth (for unlocking the disk), the greetd greeter, Sway, Waybar, and other applications.

Running tray things

I’ve done fancy things such as making sure the following nice tray programs is started and working:

Fixing my swayidle

Before I had swayidle configured to black the screen but not actually suspend the computer… That’s also fixed!

Setting up wpaperd

I’ve switched wall paper for like the first time in 4 years, so I’ve found some nice space images that fits on my new monitors without stretching and then it rotates between a set of a bunch of images on random rotation every 30 minutes. It’s very pretty!

Music player control

I’ve started reading about the mpris protocol and playerctl, this was super easy to set up. services.playerctld.enable and services.mpris-proxy.enable in home-manager made it possible to control media players on my Linux desktop with Bluetooth devices.

I’ve also managed to add this using the mpris module to waybar which was super easy.

Conclusion

Yes I left Sway, for like 3 weeks, which set me on a journey for change to land on a better and more fancy sway that does more of the things that I didn’t know that I wanted it to do.