We love to praise linux constantly and tell everyone to change to it (they should) but what are your biggest annoyances ?
Mine would be, installing software (made even more complex by flatpaks being added, among the 5 other ways there already were to install software) and probably wifi power management issues.
Oh! Came up with a new one, though it’s more of a unixism than a Linux specific thing.
I really wish that the core utils and other cli tools had a standard structured output option, like yaml, json, or toml so that it would be easier to parse rather than all of the random regular expressions needed when piping output around.
Edit: And it would be great if we also picked that same format for config files instead of all the bespoke stuff in /etc.
Its users
-
audio - Most of the time it works, but there have been plenty of times that after an install, I have to go in and make a handfull of changes to get it working.
-
“you are using it wrong” developers - Lookin at you, Gnome, Mozilla and Pottering. Yes, you are donating your time, and I appreciate that, but don’t be dismissive of people if they bring up valid issues. If you just don’t want to fix problems, that’s fine, but just be honest about that, instead of blaming the user.
-
sleep/hibernate - I’ve never depended on sleep or hibernate to work properly. I gave up on that years ago, and whenever I come back and try it again, I remember why I gave it up.
-
documentation - As a seasoned linux person, I love man-pages, but they are soooooo obtuse and hard to parse for newbies. I also hate it when the website has mountains of documentation, but they couldn’t be bothered to put that into the man-pages.
-
video/wifi drivers - Yes, I know that this is mostly a problem because of the manufacturers. That doesn’t mean it isn’t a problem.
-
unsympathetic users - Just because it works for you, doesn’t mean it works for other people. I can’t wait for year-of-the-linux-desktop, but it just isn’t there yet. As soon as you have to tell a non-tech to open a terminal, the vast majority of them are out. You and I know that ‘editing /etc/somedir/somefile and running /usr/sbin/somecommand’ is easy, but sooooo many of them don’t know what that means, nor will they care. I hear that windows is pretty bad nowadays, but people will often stick with the devil they know.
Last point is the most important in my opinion
So much this!
Please, if I don’t know how to build this from source, please tell me what I need to do.
Please say “open a terminal and type git clone [URL]” instead of “clone the repo.” Anything to be more verbose. This might be my first time.
Agreed. Even something like: “Read up more on this here at someurl.com for more info”. The assumption that everyone knows how your repo works, as well as the 3 different build-tools that you use, is quite a lot. I feel like a of the instructions are like how you draw an owl: https://kstarr.com/wp-content/uploads/2021/11/draw-the-owl-300x257.png
Great summary! Longtime Linux users and tech people in general tend to forget what it’s like to be a layperson, and take for granted all the skills it takes to daily drive Linux without trouble.
Great summary, too many Linux elitists like to claim Linux to be without flaws and every other OS to be the devil.
I’d love for Linux to become more mainstream. But as long as those elitist are pulling the strings, it will never become user friendly enough for a regular user.
“But I moved my granny to Linux and she can use it” is their argument. When in reality every time this granny had an issue, the Linux user came around to fix it. The majority of people do not have a tech savvy user in their direct circle capable of fixing Linux. So the only option they have is to bring it back to the store they bought it from.
Idk man it all works for me.
The audio stack is just just a nightmare, it’s not even funny. Sometimes, at random, when my PC boots, it will output white noise at full volume through my headphones. The is fine if I turned it on and went to get something, make a coffee, whatever. I can still hear it in the other room though. If I’m sitting at my PC and I was just rebooting, wearing the headphones: that isn’t ok. It damn near blows my eardrums out when it happens.
The unsympathetic/pedantic users and obtuse man pages are why I’ve abandoned Linux attempts in the past. The reason I am trying to move to Linux now, isn’t because those were fixed. It’s because windows is becoming the more annoying option. I’ve prevented my computer from updating win 10 until I can leave the platform. But I’m not looking forward to dealing with Linux frustrations. Especially the fucking users. I hate asking Linux people for help. 95% chance I just get a pedantic dickwad.
I think things are getting better. I’m not going to lie and tell you that it’s no longer a problem, but I think you can do a lot more with a little patience. I know there’s a lot of different implementations, so you might need to experiment as well. Good luck!
You can ask me for help, im pretty nice :) not a linux pro tho
Lol thanks, I appreciate the gesture
You can ask me for help, im pretty nice :) not a linux pro tho
To be fair, my colleagues have audio issues on Windows more often than I do.
The classic “oh, windows reset all my audio configurations after an update… again…”
Sleep and Audio are definitely my most annoying, and prominent, issues that I run into. Devices like USB audio interfaces I find tone temperamental. Oftentimes they will not be recognised on startup and I have to unplug them and replug them back in. I also gave up on hibernate, my PCs are now either on or off…
-
We have awesome distributed systems like Kubernetes (rke2, or k3s as easy distro examples) BUT no desktop usage.
I want a distributed desktop dang it. My phone, my smart tv (media PC), my gaming computer, my SOs gaming computer, my router, my home lab, etc, etc should theoretically all be one computer with multiple users, and multiple interfaces.
I have spent way too much time fiddling with audio, both in PulseAudio and Pirewire. Granted, this sucks even more on Windows.
Weird how my absolute favorite thing about Linux is how easy and simple installing software is, at least on Arch. Never touched a flatpack or snap or whatever else they’re called for my 13+ years if use.
The community’s general overestimation of the average person’s tech capabilities.
Not necessarily fair to pin this on Linux per se, but there’s hardware that doesn’t work well or at all still and alternative solutions still aren’t there. So this would be mostly on companies making software for Windows but not for Linux, but it’s still part of the Linux experience that I do not enjoy.
I have to troubleshoot things on Linux more than I did on Windows.
I disagree honestly
I think the biggest strength of Linux is that it gives people power over their own computing. That has and probably will be its best selling point.
I personally wish that there was something Linux based and Foss that is closer to Chrome OS/Android. I want to have a desktop experience that is hassle free and dead simple. Dahlia OS was promising for a while but it has now seemingly been abandoned.
You disagree with… the things I personally find annoying about Linux?
My one major complaint is audio in general. I’ve had so many audio issues. If you need an eq or noise canceling it’s a pain to get it working. There’s always a bug somewhere, always a random distortion.
Voicemeeter is the only thing I miss about Windows. I really do.
I have an audio issue where it starts chopping if (I think, but could be CPU as well) the GPU struggles (think shader compilation). I’ve tried a couple of things to fix it, but haven’t been successful yet. So far it’s been my only major complaint.
Having to install apps manually and figure out dependencies myself because a popular piece of software only officially supports Ubuntu and Debian. No normal human would ever do this. They would go back to Windows. Hell, I still haven’t even gotten one piece of software to work on my new OpenSUSE system yet: Beyond Compare 4. There’s no flatpack for it. The RPM test says all dependencies are satisfied, but when I run the program, nothing happens. I did some web searching, but I haven’t dug too deep yet.
Why are there so many package managers with such different syntaxes? And why does one repo maintainer decide to call it “package” and another calls it “package4”? Or some entirely different name! It’s maddening. I’ve had to create empty proxy packages that translate package names just to install some RPM file. Again, the average person is not going to do this.
In KDE plasma, the first thing most people do is set up Wi-Fi on their computer, but you need to set up KWallet first or else the password gets stored in some other dimension. I accidentally typed my Wi-Fi password wrong, and I couldn’t for the life of me figure out how to clear it out and make it ask me for the proper password when I try to connect. I even went into network manager and switched the network to say, “ask me every time”. It wouldn’t! It would just sit there and hang on “authenticating”. I never did figure it out. I ended up forgetting to encrypt my system partition, so I simply reinstalled the OS.
And it’s not only obscure software on obscure distros.
The Arduino IDE doesn’t run on Fedora 42. It just doesn’t work.
I personally don’t need it, I use ESP-IDF on Platformio, but Arduino is an incredibly common piece of software and one I would have expected to work flawlessly on Linux.
Terrible documentation that is written assuming far too much prior knowledge.
I’m pretty technologically literate but just don’t have a lot of experience with Linux, in the last year of trying properly to switch over the most frustrating part is trying to fix problems or follow peoples “guides” to various things. There is plenty of information out there for sure but when I have to keep looking up a string of things to try and get to my desired end result then the original documentation I’m trying to follow is not adequate.
I can only imagine what it might be like for users who are less inclined to learn about this stuff and just want to use it / solve a problem.
I think that a lot can be said for well written documentation that describes necessary processes to get a desired result in a way that everyone can follow regardless of their prior experience or knowledge.
When I first got into tech, one of the first things I noticed was how deep the knowledge base was, layers upon layers of knowledge dependencies, and how poorly tech people explained things.
I remember learning about how to write clear, easy to follow manuals in IT classes when I was 13 in the late 90s. What ever happened to that skill, did it die along with physical manuals?
I think just the phrase “IT classes when I was 13” is enough to convey just how far outside the norm your experience was.
I have a CS degree from a top-10 university, and they taught me approximately fuck-all about writing good documentation. There was only one course on technical writing, and I don’t remember it being very rigorous or difficult.
If anything, what few writing requirements we had in the rest of the curriculum were typically more similar to academic research papers than user manuals.
It did. The thick manuals of the 90s needed to actually document things.
Must have. I sure as hell didn’t get that training in school a couple years ago. My teachers sure as hell didn’t either
Security should be the default, but instead a lot of security features are optional things we have dig through docs to set.
TPM support is getting more common, using it should be too. Detected during install? Set it up as part of LUKs during install, and enable a password, and provide option for TANG (both usage or deployment).
fscrypt should be enabled by default and keys set by logical differences of file types. (Yes on top of LUKS). Honestly setup following selinux profiles and per user is a reasonable default. Hardware wrapped keys should be default.
Encrypted memory an option for this CPU? Enable it. Features for multiple key memory encryption? Enable it. Encrypt on a per VM and per container level by default.
Each service should be containerized, connections made explicit (ideally with l7 rules, l4 at least). If a user want to tinker with have a dev mode that opens that service up, with expectation that it’s temporary (track and warn user when active). Each service should run as it’s own non root user.
Each application should containerized. Wayland should be default to minimize shared data. Access by apps should be explicit and user approved and user configurable. Application should never run as root and escalations should be temporary and explicitly approved by the user. Application to the network should be explicit per connection and l7 aware.
MACSec WPA3 pki should be available during install. Wireless WPA3 PKI option should be default on wireless setup. IPSec/Wire guard VPN/Tor should be available option by default on setup. Vlan tagging should be available options on setup.
FIPS or equivalents should be enforced by default. Old encryption methods/cipher/etc should require explicit approval by the user.
Selinux should enabled by default and selinux tagging should be exposed in user applications, so users can choose the security levels, privacy tags (medical or tax docs or etc), or pseudonym access they want.
Sudo should be setup by default for least privileged roles and not god mode access. The combination of those into a single user could look indistinguishable but it should be set and ready for adding users that are limited in scope.
Encrypted backups following the 321 rule (at least 3 backups, 2 different types of media, 1 off site) should be the default and configurable on install. Schedule and triggered backups should be frequently (ideally constantly backup, with snapshot ting being periodic).
Multiple factor logins should be the default. Support for smart card, key fob, OTP, biometric, plus password built-in and encouraged on install.
Number of known CVEs for hardware, packages, and configurations should be tracked and obviously available for privileged users. Hardware missing for full best practices (like TPM 2.0, memory encryption support, etc). Software source should be kept easily accessable to users for remove and modifications. Software should adhere to SLSA build practices, exception explicitly choosen the user.
Systems should be immutable with expectations being explicit to the user and triggering snapshot ting.
DNSSEC and DNSoTLS/DNSoHTTPS should be default and configurable on install.
NTS should be default for NTP configuration. Hardware time sources should be configurable on install.
Applications should be privacy preserving by default (not defaulting to Google for example).
These are just off the top of my head stuff, stuff I had to annoyingly learn and set up myself to harden systems instead of it just being part of sane defauls. CIS bench mark has more controls that should be set.
Snap. The very existence of it.
The fact that there is NO agreed single package standard across distros.
This is probably the biggest barrier to mainstream linux adoption - devs have to choose between supporting 5+ package formats or just say “screw it” and make a windows/mac app instead.
This is my own opinion, but I think Flatpak and Flathub need to be universally adopted as a standard. It’s already growing that way organically, even if major distro projects haven’t recognized it yet.
With usage of Flatpak growing over time, I think we are heading towards that way.
This has its pros. If all agree to use, say, deb, then some of the users will complain, “I downloaded package XYZ from Arch and it doesn’t work on Fedora!”
No, not really true, IMO.
If all distros come together and agree on a single package format (e.g. deb), then if arch makes a package available in .deb, it can be downloaded and installed on Ubuntu or Fedora, as it becomes an universal package format like flatpak.
Currently we have to compile the source code in such situations.
If flatpak is universal doesn’t it solve the issue ? Is it the sandboxing people dont like?
My system is a mix of .Deb, manual compiled, and flatpaks. As im sure many are. Im not an organized person.
Yep, it’s sandboxing that I don’t like. They feel “tacked on” and don’t integrate properly.
Same for my system which is also a mix of deb, flatpak and Snap.
The main complain of flatpak being size and performance in comparison to ‘native’ installations.
Linux needs a shared API framework for all desktop apps for them to succeed. It’s ridiculous that gnome apps and other apps look different and have different theming conventions. I’d love to get into theming and application building, but I’m so afraid that I’ll waste my time on something that won’t apply to everything. macOS solved application cohesion perfectly.
There’s now game developers dropping native support for proton, because proton has a more uniform, stable and predictable API.
So while Linux in many ways becomes the better way to play Windows games, it’s also better to play Windows games on Linux than Linux games on Linux.
I can see a future where more and more of Linux just becomes a wrapper around Proton.
Proton for everything would be pretty heavy though. I’m referring to user facing APIs that could be made consistent.
Proton is not that heavy. In many cases it’s less heavy than Windows.
And sadly I cannot see a future where all of Linux rallies under the same APIs without giving in to the urge to forge.
Bluetooth support can be a mix bag one point my keyboard constantly disconnects for every few minutes likely due to the hardware aggressively try to save power.
Suspending can be 50/50 especially on old hardware. Either you get it back up and running or you will have to forcibly shut it down since it refuses to accept any commands.
-
The lack of a universal application installation method which 98% of developers use. Windows has .exe and it makes it so much easier for developers to release one application which is dead simple for users to install. No instruction manual with different methods per distro. Just double click. This results in less support for Linux in general. Fewer games and applications an drivers with fewer features.
-
Poor backwards compatibility. Yes it results in bloat, but it also makes it much cheaper to develop for and maintain applications, and this results in more developers for Windows. More hardware and driver support. More applications. More games.
It is no mystery to me why developers don’t focus more on Linux support. It’s more expensive. They tell us this. What is so frustrating is that Linux fans are so quick to blame developers instead of focusing inwards and making Linux a more supportive platform for said developers.
The lack of a universal application installation method which 98% of developers use. Windows has .exe and it makes it so much easier for developers to release one application which is dead simple for users to install. No instruction manual with different methods per distro. Just double click. This results in less support for Linux in general. Fewer games and applications an drivers with fewer features.
That’s not true. .exe isn’t an installation method, it’s just a binary, the better equivalent would be .msi. Also you also have to consider (some) dependencies on Windows, e.g. you can’t assume the required vcredist is available on the target.
Poor backwards compatibility. Yes it results in bloat, but it also makes it much cheaper to develop for and maintain applications, and this results in more developers for Windows. More hardware and driver support. More applications. More games.
Not super sure about this. I was able to run an over 10 year old binary only game when I last tried (UT 2k4 in 2016 or so) and it worked after providing a single missing library. Yes, it did require manual intervention, but I think the situation is much better on Windows where compatibility also isn’t granted anymore.
10 year old binaries are only an achievement on Macs.
I have been able to run Lotus Organizer on Windows 11, 20-30 years old and only runs on a FAT formatted partition of maximum 4GB.
That’s not true. .exe isn’t an installation method, it’s just a binary, the better equivalent would be .msi. Also you also have to consider (some) dependencies on Windows, e.g. you can’t assume the required vcredist is available on the target.
I think one could argue this but it’s immaterial. My point remains the same. The lack of a universal installation method makes deployment expensive on Linux, and confusing for users.
Not super sure about this. I was able to run an over 10 year old binary only game when I last tried (UT 2k4 in 2016 or so) and it worked after providing a single missing library. Yes, it did require manual intervention, but I think the situation is much better on Windows where compatibility also isn’t granted anymore.
I can run a 1998 copy of StarCraft designed for Windows 98 on Windows 11. It’s true there are degrees of backwards compatibility here, but Windows is king. They invest a lot of dev time into ensuring applications remain operational for decades. Their API deprecation policies are legendary.
I think one could argue this but it’s immaterial. My point remains the same. The lack of a universal installation method makes deployment expensive on Linux, and confusing for users.
If you’re fine with an executable just writing stuff to your system, then .sh is Linux’ universal installer format.
It’s true there are degrees of backwards compatibility here, but Windows is king
I agree, Microsoft has invested a lot into backwards compatibility and some nifty tricks to deal with DLL hell which was a huge issue in the past and as a result, provide the best backwards compatibility, as long as you stay on x86-64. Nowadays, each .exe basically sees its own sets of dlls in the filesystem. I agree it’s best there. My point was rather that it’s not as bad on Linux as people make it out to be if the application was packaged correctly. Going forward, I think stuff like Valve’s Linux Runtime can provide compatibility.
If you’re fine with an executable just writing stuff to your system, then .sh is Linux’ universal installer format.
I would be, but it’s not enforced. Few developers use it. Any method needs to have almost total universal adoption. Then libraries get built around that standard instead of the other way around.
My point was rather that it’s not as bad on Linux as people make it out to be if the application was packaged correctly. Going forward, I think stuff like Valve’s Linux Runtime can provide compatibility.
That’s fair. It’s getting better. Linus Torvalds agrees with you. Valve might have to save us from this fragmentation.
-