<-- PREVIOUS | NEXT -->

Why I Don't Like Hyprland (And Why I'll Be Using it Anyway)

Date: 2024-04-08 22:03

Recently, I switched from Sway to Hyprland, out of curiosity. I'd heard that it's really good, and in a good state, so I thought I'd try it.

At first, I thought I had made a mistake. I struggled to perform basic work, and spent what felt like a futile amount of time configuring it, and I thought I'd go back to Sway.

However, that hasn't been the case. Not at all. Despite the fact that Hyprland is a MASSIVE downgrade workflow-wise for me, I'll still be using it, for the time being at least.

The Previous Switch

A few months ago, I was using the i3 window manager. It was great. Things worked how I liked them to, and I had configured it to my liking.

However, I decided one day to try this new Wayland thing everyone is talking about. The obvious choice was Sway, because it claimed to be almost entirely compatible with i3.

At first, the differences felt really weird, but before I knew it, I had gotten used to them, and using i3 felt weird instead. So that's where things were when I switched, once again, to Hyprland.

Why I Made The Switch

I'd been dealing with so many strange issues, mainly to do with OBS Studio. I use OBS to record video and audio, and having it working is a make-or-break affair for my needs.

Unfortunately, OBS's Wayland support, is...subpar, and it heavily relies on xdg-desktop-portal to get anything meaninfgul working. As such, I found myself dissatisfied with Sway because of its subpar portals implementation. As such, I was already open to experimentation, especially considering that OBS was constantly breaking in strange and seemingly random ways, and I was getting tired of it.

The Initial Switch

The first thing I had to do was install Hyprland. This was as simple as running

sudo pacman -S hyprland

in my terminal. Ah, the joys of Linux. Imagine I was on Windows. Then I'd need to go on a sketchy website and download a random .EXE and pray I don't get a virus. And on MacOS, it wouldn't even work at all, because it would be incompatible with this Mac.

Once Hyprland was installed, configuring it was somewhat simple. The Wiki was fairly easy to use and the default config, while quite cluttered, provided me with a decent starting point. However, there were a few idiosyncracies I found hard to deal with. For example, the `bind` keyword is super confusing. This is what the syntax looks like:

bind = <key(s)>, <key>, exec, <command>

For example, to bind CTRL+DELETE to an action:

bind = ctrl, delete, exec, alacritty

But to bind CTRL+SHIFT+DELETE to an action:

bind = ctrl shift, delete, exec, alacritty

This looks really easy, and it is, but when you code looks like this:

bind = $mainMod ctrl, q, exec, qbittorrent

You can get lost quite quickly. For some reason, the variable name (which is set to alt) throws me off. To be fair, it IS my fault.

Usage

To put it mildly, my experience with Hyprland has been a mixed bag.

The Good

The Bad

The Ugly

The "I'm Not Sure What To Feel"

Conclusion

Over the past month, I've used Hyprland full-time for all of my work (and non-work), and I've seen my fair share of issues. I've also seen my fair share of benefits, so I thought I'd evaluate my experience. While the learning curve was more significant than I thought it would be, I think I've finally settled on a Wayland compositor, after just two tries. I'm not much of a distro-hopper, or an anything-hopper, really, so I expect to use Hyprland for at least the next few months. Maybe I'll like it enough to use it permanently. Maybe the project dies because Vaxry has a stroke from overwork (for context, he has made almost 4000 commits in the past year, which makes my 1000 in 7 months pale in comparison). But until then, I'll be a happy Hyprland customer. Thanks, Vaxry!