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.
Its users
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.
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.
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.
Managing multiple harddrives- I’m used to running multiple harddrives to manage disk space, but everything in Linux installs into /home without giving me an option to install somewhere else. I can apparently set a hard drive to be an extension of a Linux folder, but then how do I know what physical drive a file is on?
Making shortcuts- was very easy to make a shortcut in Windows. My Linux distro (Mint) has a specific keyboard command for it, but nothing in the GUI/menus.
oh i was annoyed with this too! WHY can’t i change where software installs??? I use a smaller boot drive and have extra large hard drives. it’s also very confusing how you mount a drive inside your media folder so then it looks like the data is actually under your home folder on your boot drive…but it’s not.
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.
Bluetooth support that only sometimes works with my soundcore q30’s.
Electron apps (more like erection apps), I rather burn my computer quit civilization and live on a deserted island than using any apps that has electron as a dependency.
Multithreaded performance is awful. The system becomes completely unresponsive if a single process uses a lot of CPU despite another core being available. Copying a file in the background slows everything down to a crawl.
That and laptops. Will hibernation work this time? Will it wake up or do I need to forcefully restart it? Will my second monitor work after hot-plugging it? Will the battery last 2 or 6 hours this time?
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.
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.
-
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.
Idk man it all works for me.
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, 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.
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…”
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.
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.
You can ask me for help, im pretty nice :) not a linux pro tho
Lol thanks, I appreciate the gesture
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
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…
-
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.
Excessive jargon, tends to push away people who didn’t take classes in computer engineering or grow up using unix. Mounting of drives, incomprehensible error or status messages or even “sudo”.
A lot of Linux software has really stupid names, and has since before Torvalds even started. GNU is a garbagepuke name for an operating system, and they’ve just kept doing that. Recursive actronyms like NANO and LAME, Gpackages and Krograms, and then so many bash built-ins and common shell programs have names like lsphw.
I once had this conversation:
“This distro comes with a kernel that’s so new it breaks compatibility with [some piece of hardware]”
“use mainline”
“Yeah, okay, I have no idea how to do that in this distro.”
Turns out “Mainline” is a kernel management tool. I thought the guy was telling me to use a mainline Linux kernel instead of a customized one, because A. the name of the app is poorly chosen, and B. he had the communication skills of a homeschooled zoomer.