Should we support annoying platforms?
7 min read
Hyprland, as a display server, is being used on many, many different platforms. Although its main target are common desktops and laptops (be that nvidia, intel or AMD), people may use a vast array of hardware, including embedded systems, wonky chinese chips, and even mobile phones (shoutout Amir)
Although supporting these platforms was never a primary, or even main goal while developing Hyprland, I try not to dismiss them outright, as problems on them can be rectified eventually down the line.
Some platforms are painless to support, however some are not.
Should you even care, though? In my opinion, it depends.
This article will relate a bit to some other articles of mine from the past, I'll leave them linked inline as you keep reading this post.
What is an annoying platform?#
There are two main ways a platform can be annoying to support:
- The platform itself is buggy, unstable, uses uncommon practices, or in any other way requires more than usual amount of work.
- The platform's developers, or the surrounding userbase being annoying: either via a hostile environment or via the unreachability about their platform's quirks.
Nvidia#
A common example of an annoying platform has always been Nvidia: with their closed-source, wonky drivers, finding out what was wrong has always been challenging. However, in general, Nvidia developers (once you can find one) are generally willing to note what is done "weirdly" in their driver to aid your development.
Although not all Nvidia bugs can be easily fixed, we definitely try to support the platform as much as we can.
An example of a long-standing Nvidia bug is occasional rendering freezes under hyprlock, which I still to this day don't know what is causing. If anyone from Nvidia's dev team knows why that could be, feel free to reach out :) issue link
Apple#
Some people like to put Linux on their Apple Silicon hardware. I can understand why one would want that, and I will not judge. If I was to judge anyone, I'd judge those running Hyprland on god-knows-what chinese boards.
Drivers for the apple hardware fall in the uncommon category for sure, as they have some major differences from the traditional AMD/Intel/Nvidia silicon design. What the differences are doesn't matter here, but what does matter is that it has caused problems in Hyprland a few times in the past, mostly due to the lack of testing coverage.
The Apple platform, at least on Linux (regular Apple users are usually people who actually touch grass) has somewhat of a cult attached to it, where anything that can be remotely viewed as negative is bullied out of it, with a leader who is a hypocrite who enjoys laughing at others on his mastodon, and will not miss a chance to annoy others:
- here, marcan publicly ridicules me for being banned from fdo.
- here, marcan calls me salty because he will "not sign up to fix my issues", which I've never asked him to do.
There are many other instances of marcan being directly aggressive with his following towards others, but you can go look for that on your own, those things don't directly relate to me.
Surprisingly, on Reddit, marcan can behave a bit more respectfully (see this thread), but when he talks to the masses (i.e. mastodon) he turns on the offensive. I truly do hope he could stop trying to attack everyone, as I am generally open to helping make the experience better regardless of your platform:
As an example all the CTM support MRs which I've specifically made so that Asahi users can have night light - 1 2 3. Other common platforms have support for gamma ramps, which are commonly used for this purpose, but Apple doesn't. I don't know if it's just that the driver doesn't support it, or a hardware limitation, but when someone opened an issue to add it I was totally fine with adding the functionality.
Even though this change was purely positive, as it just allows for hyprsunset to work on Asahi, it did not fail to attract the typical "vaxry bad" comment on the r/AsahiLinux subreddit, likely in some part thanks to marcan's aggressive nature in public: comment (source)
Although I do keep trying to support Apple, (within reason, I do not have 100 hours in a day) and many apple bugs have been resolved in the past already, it does feel a bit bitter, as half of the interactions with people on Apple hardware is either somewhat, or overly negative.
Phones#
Some people do run Hyprland on phones. I am not joking. Phones are one of the weirdest platforms to support, as many, many times bugs happen due to extremely wonky hardware, which is barely supported in mesa, or some software shenanigans.
Although most of the graphical bugs I do not look into that much, many of the usability-related ones (touch support, cursor hiding, etc) I do look into, so that the phones that run Linux decently well can run Hyprland without major issues.
It's also beneficial for that platform that one of my friends does that all the time and they will keep bugging me if I don't fix them. Heh, life ain't fair.
Should you support those?#
Whether you support a platform or not is not really a cut-and-clear case here. Some platforms work better, some work less well. What is important to balance is the amount of development in relation to how much benefit you believe it will bring you.
If a platform is not widely used, but a bugfix is simple, why not? If it gets more complicated, you might want to skip it, at least for now.
Hyprland's policy#
My policy with Hyprland is quite simple. Most of the work here is done by one person, being me. I can't speak for how other developers divide their attention and time, but I can speak for myself.
I've described a bit about how I work back in 2023, see the blogpost here. I am not paid a salary, and I have other stuff to do besides Hyprland, so I need to manage my time with choosing what issues to look at first, and which ones to put aside.
For most of the uncommon platforms, (apple, phones, odd chips) I do not look into them deeply that often. Most of them I let sit unless they are critical, and once they gather enough momentum I might look into them when I have some free time. Additionally, if the cause is not very clear to me, it will be pushed back likely even more, as opposed to when the cause is obvious.
For the common platforms (AMD, Intel, Nvidia) they are treated with regular priority compared to other bugs. If it's critical, it will gather my attention quickly. If it's not... well, its time will come.
As of quite recent, Hyprland has been getting a few more regular contributors, to which I am very grateful for their help (really helps get the burden off of my shoulders a bit), with the newest being Ikalco (aquamarine, drm, etc) and PaideiaDilemma (basically runs hyprlock by now).
This does help me focus on other stuff for sure, so I hope to get a bit more time to look into issues that have been left to catch dust for a while now.
On development#
Many platforms have their own weird stuff, and nobody should be required to give help to anyone else, sure. However, if you want your platform to be well-supported, and you care about your users, I believe making an honest attempt at answering a question is a courtesy any developer should be able to do.
Whether your answer is a clear description of what went wrong, or a simple "honestly, I don't know", it's always better than refusing to help outright and (in marcan's case) ridiculing the developer online for not knowing every odd part of your driver, which is, whether you like it or not, uncommon. Whether there are 20 drivers that are similar or not doesn't change the fact that 99% of desktops do not use them.
For people who help develop hyprland, or make plugins, I always try to answer their questions regarding the codebase as best as I can. Sure, I won't go and read their entire codebases, but I do try to be helpful.
Lack of such a sense of cooperation is what is driving the Linux desktop down as I've mentioned back in my Linux Infighting Blogpost.
Closer#
Considering time is finite, every developer has to make choices about what issues to prioritize, and which ones not to. Treading this fine line is an art, and unfortunately has no perfect strategy. Every move you make will make some people happy, and some upset.
However, even if your platform is not supported, or not supported well enough, I don't believe it's a cause for hatred towards the developer(s), especially in FOSS projects. Many of us are volunteers, with limited time and funding. At least for Hyprland, I can assure you, we are trying our best.
Until next time, folks.
Happy New Year!