I think this is the reason Linux hasn't penetrated the desktop more than it has. “Just reinstall” is too often the solution to issues.
Starting over will often throw away hours of someone’s time. This can be catastrophic for a non-technical user.
I wish the Linux desktop was implemented more like a user extension on top of a rock solid base server layer (eg hypervisor). Maybe such a setup exists, but I’m unaware of it.
I was not familiar with Silverblue. It looks very promising. The idea of creating a fundamental, shared base system should make troubleshooting significantly easier — possibly an exponential reduction in the possible installed permutations. Thanks for the suggestion!
Switching desktop environments on Linux is absolutely trivial and doesn't require a reinstall though (at least in my experience of switching from GNOME to KDE on Ubuntu, which took a couple of minutes to pull down the KDE packages and then logging out and picking Plasma from a dropdown in the login screen - and if I feel like it I can switch back to GNOME anytime).
It's not trivial. Just installing KDE packages on a GNOME install will work and is quite easy, but will lead to some mix / subtle setting issues, it's less clean than just a brand new install.
Installing and running KDE will mess up GTK settings in GNOME for instance. You might end up with the Breeze GTK theme in the GNOME session. Which works, but this is most likely not wanted (even though GNOME looks great with the Breeze theme).
I'd not advise regular users to do this without a warning.
I haven't seen this on my Linux laptop, but TBH some UI elements in GNOME look so weird in Ubuntu 24 that I'm not sure if it's broken or intended (but already did before installing KDE).
Trivial to who? A seasoned Linux nerd? Maybe. A regular, non-tech person? Nope. And that is why there is no year of the linux desktop. And if you expect a regular, non-tech person to be able to master the terminal and type in commands you're delusional.
Trivial in the sense of googling "how to install KDE on Ubuntu", picking a result that looks somewhat recent, and following those steps. It ends up being a handful terminal commands which shouldn't be too hard for anybody who has used a keyboard before. That's how I did it at least. There might be more UI centric options.
Also, trying to chase the elusive 'casual user' is what caused all the GNOME UX mess in the first place I guess. I'm not an 'archetypical' Linux nerd, I hate wasting time with fixing stuff that should "just work", but I'm also expecting a computer to be a professional tool which I can customize to my needs (within reason at least).
Windows is not better at this. Plenty of troubleshooting advice says "Now open the registry editor and..." or "Now open this .ini file and..." or "Now open cmd in admin mode and..."
The ease of the GUI ends when a serious system-level issue arises. This has never not been the case, it's just a matter of how much the documentation expects you to know what's going on, and how much that impacts the first-run experience. If the first-run is good enough, "reinstall" becomes the go-to fix.
I wouldn't expect a non-tech person to even understand the difference between an operating system and a desktop environment and why you can switch the latter while keeping the former. Nor would I expect them to care.
That's just not true at all. The reason Linux hasn't penetrated the desktop is because it's not installed by default. Even if that isn't the reason, the GPs preference for reinstalling is certainly not. Switching DEs doesn't require reinstalling the OS, it requires searching your distros app store for KDE, and then logging out and selecting "KDE" when you log in again.
You could even switch between them each time you log in, depending on your mood that day.
No, Linux has poor isolation between the base system and application and third-pardty software and poor backwards compatibility (FreeBSD is slightly better in that respect). The only OSS Posix system that getting it right seems to be Haiku.
This is not how people want it though. The want to be able to install any version of any software old or new irrespectively of the base system. Flatpack is close though.
It's funny that you say that, since that was the solution to Windows issues for... decades? Not sure if that's still the case, as I haven't touched it in forever.
Regardless, not sure where you've gotten that impression of Linux. The only times I've reinstalled is when I've gotten a new laptop, and in those cases I just copy my home directory over to the new laptop and everything just works.
The GP's example of needing to reinstall because they wanted to change desktop environments is nonsensical; I don't think anyone even remotely knowledgeable would recommend a reinstall in that case. Just a trip to the package manager app and a restart.
I think there are quite a few reasons why the Linux desktop isn't more common, but "need to reinstall to fix issues" certainly isn't one of them.
> The GP's example of needing to reinstall because they wanted to change desktop environments is nonsensical
I agree that trying out a new desktop environment by selecting a distro package would not normally require a reinstall.
However, in general installing and removing packages (not specifically a desktop manager), especially custom ones with conflicting dependencies can lead to things being broken without a clear direction forward.
To paraphrase Tolstoy, each broken system tends to be broken in its own way — which makes it hard to find help. Maybe wifi, sound, or BlueTooth get inexplicably flaky. Or power management. It is not hard for me to imagine a situation where a user just gives up and reinstalls.
Reading up on Silverblue (which someone else mentioned) and other technologies like Nix give me hope that things are improving.
I think this is the reason Linux hasn't penetrated the desktop more than it has. “Just reinstall” is too often the solution to issues. Starting over will often throw away hours of someone’s time. This can be catastrophic for a non-technical user. I wish the Linux desktop was implemented more like a user extension on top of a rock solid base server layer (eg hypervisor). Maybe such a setup exists, but I’m unaware of it.