It's not Awesome, it's Hypr!



Hypr was my first "major" public project. Yes, I've done big projects at work, and before too, but it was the first that I've written from the ground-up, was big and public. It's also one of those projects that I am still proud of, and not only because it's gained over 330 stars already on Github.

In this post I want to ramble a bit about stuff that I am happy about, and stuff that I am not happy about Hypr.

Hypr from the beginning was planned to have 2 major strenghts:

In the first, it was a definite success, if I may say so myself. In the second, it is good, but could be better. The current codebase's cleanliness is scarred by the layout system, in my honest opinion. The layout is baked into the events and general codebase. I've first realized it when Flammable Duck, a good friend of mine, asked me to add in the Master-Stack layout. It turned out to be not so easy and suprisingly challenging because of the sheer "embeddiness" of the dwindle layout. Unfortunately, it was way too late for major reworks to this system, so I just left it as is, refraining from adding any more layouts. I kept it at the back of my head for the future, in case I'd want to make Hyprland.

A lot of the issues that plague Hypr to this day are rooted in Xorg itself. The more I work with Hypr and Xorg, the more I see the deeply-rooted problems with it. The lag, inability to make quick requests, magic stutters, rendering glitches, all that stuff. It's infuriating, for me, because I've spent so much time and there isn't much I can do unfortunately. Xorg is tens of years old, and I don't even want to attempt trying to "fix" anything in it. 100 thousand lines of code of insanity.

There also was this one incident with the AUR package. The AUR package did not work for the first month. I've noticed it once on my laptop, but thought it was because some pkgs were outdated, missing or whatever, and I just noticed it worked when built from source and dismissed it at that. Some time later, others noticed and the AUR package's maintainer got on board to fix it. After some hours, it proved that some build flags that makepkg automatically sets were breaking the entire executable. Pain. I have no reason to blame Xorg for this, but I will. Damnit, Xorg.

Not everything is bad about Xorg, though. It's stable, whatever you might think, and it's harder for someone like me to break it to the point of a crash. Compare that to Hyprland, where I get random crashes from wl_lists every now and then out of nowhere. It's probably my bad code, but I'll save that for Hyprland update blogposts.

Now, all in all, Hypr is a big success in my book. It's stable, feature-rich and I can see it gained a following from the number of people using it, talking about it and giving me tons of support on reddit and youtube. Just recently (okay, 3 weeks ago) Jake@Linux posted two videos about my window manager, Checking out Hypr window manager and My "Finished" Hypr Window Manager Setup, where he talks about the window manager, gives his thoughts and encourages people to try it out as well as mentioning that he'll be using it on his laptop, which I am very happy about. If you think that I haven't seen the posts about hypr on r/distrotube, or on r/unixporn, or Jake reviewing my window manager just because I didn't comment, you're wrong. I lurk in those places, refusing to comment in order to allow people to post their honest thoughts. Good or bad - it's valuable information to me, as it tells me what is good, and what isn't. Suggestions are better than bugs - suggestions you always understand, bugs, sometimes not, sometimes you can't reproduce and sometimes they are difficult to catch. Features are just a "think, think again, code" thing, usually.

I will talk more about the development process of Hypr in the future, as it was a bumpy road for me, but ultimately, very enlightening, as I've learnt a lot.

I will also talk more about Hyprland in future blogposts, so stay tuned!

Questions, comments, mistakes? Ping me a mail at vaxry [at] and I'll get back to ya.