The Year of the Linux Desktop... For Me Anyway [Part 1(?)]
by ben_h
So I finally decided to make the full switch over to Linux after waffling about doing so for the past year. I've used Linux off and on in various capacities since about 2007 so I'm not going in cold. I figured it might be useful for other folks considering the move to see what types of issues I've been running into since for less experienced people, it might be a bit trickier to solve these problems. In making this, hopefully it helps others understand what kind of undertaking making the move to Linux is. It's not super difficult but it's also not a complete cakewalk like some Linux proponents claim it to be. A lot of the things that caused me to not recommend people use Linux years ago are gone now but there's still enough that it isn't an easy yes-or-no answer.
Why?
Simply put: I'm done with Microsoft. Even before recent layoffs, I had been struggling more and more to justify keeping using their various products and services. It's not just that they as a company have gone mask off evil over the last few years (in a bunch of ways you probably already know), but also because their current products just straight up suck.
Windows 11, which I used for the past three years, is not a good version of Windows. It has no meaningful improvements over Windows 10 and instead does everything it can to get in the way. It does not trust the user to know what they are doing. They constantly move things around, break functionality, undo settings changes made by the user, and cause unneeded headaches. The second you don't want to use Windows 11 the exact pre-ordained way they would like you to, it falls apart now.
Then there's the entire monetization/enshittification aspect of it all. Windows 11 now aggressively pushes you to subscribe to not just OneDrive, but Microsoft 365 (or whatever they decide to call it this week) and Copilot at every opportunity. Do an OS update? Here's ads for 365 you have to click through to get to the desktop. Want to do a backup of your system drive in anything resembling a modern way? Nope, you can't easily do that, but what you can do is subscribe to OneDrive so it will back up your documents and apps but not your actual system drive (their big new Windows 11 backup option from a year ago was a OneDrive ad. If you actually want to do a real backup of your system the recommended method is still to use the clunky old Windows 7 drive imaging tool in the old Control Panel). Want to look at the weather widget? Here's a bunch of ads and ragebait tabloid news that all makes Microsoft ad money. Want to open a PDF with that program you set as the default? Heck no, not gonna happen since Windows decided in the last update to reset your defaults back to Microsoft Edge so it can send you there and feed you even more ads.
Most recently they are now rolling out an AI search agent to replace their Windows 7-era system search tool (that one you use to open applications and stuff) that according to people who've used it so far usually just sends what you type in to Bing (opening Edge to do so because of course) rather than opening your applications or whatever.
If you want to get rid of any of the monetization or AI stuff, you generally also have to remove actual functionality from the OS. You can't remove ads or news from the widget panel, only remove the entire panel. Same with the new search: it's all or nothing. You can't disable it for some things but not others, only get rid of the whole thing. If you do remove Copilot, the widget panel, and all the other things, you are basically left with a worse, less customizable Windows 10 that still does everything it can to force you into the Microsoft subscription ecosystem.
Of course this is all in the context that Windows is still a paid operating system. You pay for a working operating system and as time goes on it stops working how you wish because the changes make Microsoft more money. It's disgusting behaviour and I'm done with it.
So What Linux Distribution Did I Go With?
After tinkering with roughly a half dozen different Linux distributions over the last year or so, I settled on CachyOS, which is a newish Arch Linux derivative that is designed to be more user-friendly than standard Arch Linux. If you are familiar with the desktop mode of Steam OS on the Steam Deck, it will look quite familiar. It by default uses the same KDE Plasma desktop environment and other bits of desktop software Steam OS does. I was mostly interested in CachyOS because the Arch base of it means that it gets rolling OS updates, which is convenient and makes managing the system pretty easy.
With that, here's some of the issues or points of friction I've run into so folks thinking of making the move might understand what kinds of things they'll probably run into.
Points of Friction:
Point of Surprisingly Little Friction: Drivers
Back when I used Ubuntu, Mint, and OpenSUSE Linux for school a decade ago, managing and installing drivers on Linux was a genuine nightmare. By default, distributions would use an open source Nvidia driver called nouveau that really, really, really sucked. To make your PC actually usable required acquiring Nvidia's proprietary drivers, hitting a sequence of keys to bail out of desktop mode and into terminal mode, manually disabling then uninstalling the nouveau drivers, installing the good drivers, then rebooting. All of this had to be done from the command line. Audio was similarly a nightmare. Back then I ran into issues where audio just wouldn't work at all even when everything was theoretically configured correctly. The Linux audio stack of the time was very fiddly and would break if you looked at it funny. Even past those two big things, there were a lot of little things that didn't work or required a bunch of tinkering to get functioning at all. Controllers and various USB devices were a complete crapshoot that usually didn't work. It was a mess.
Not so anymore. I'm not going to say outright installing Linux is now easier than installing Windows, but I'm going to tentatively say that it is, at least with CachyOS and Pop_OS!. My install of CachyOS took under 10 minutes to install. With it, drivers for every device I had connected were also seamlessly installed. I have the latest proprietary Nvidia drivers along with drivers for my audio interface and various other devices. My DualShock 4 "just works" and functions as expected with zero setup. Even the media keys on my Mac keyboard (yes, I'm currently doing a Brad Shoemaker) worked without any tinkering. My high refresh rate monitor was already set to all the right settings too. The most specific weird USB thing I have that I didn't expect to work at all, my Playstation-to-USB dongle for hooking up DualShock 1s and 2s along with Guitar Hero guitars, even works flawlessly (I was actually shocked by this. That thing barely works on Windows). The only actual settings changes I had to make to have a fully functioning PC were to change which output audio was going to and what my monitor layout was since I use multiple monitors. That's it. I was technically up and running in under 15 minutes from the start of installation.
Point of Friction Number One: File Systems
If you are thinking of moving over to Linux and only use one SSD with one big partition, none of the following will apply for you. For those who use multiple drives in their system, it can get kinda complicated if you were previously using Windows. By default, Windows formats drives to NTFS, which Linux can handle but really, really doesn't like. When I was testing distros I just left my secondary drives in NTFS and dealt with the consequences. The Linux variant of Steam in particular chokes on NTFS when running some games. FF7 Rebirth, for example, was not playable when I used my Windows install of it located on an NTFS formatted drive (that Windows install of the game works totally fine when moved over to EXFAT or ext4 or whatever, just not NTFS. There's a technical explanation for this but I won't get into it).
So the point here is that you are going to want to format your secondary drives to something other than NTFS, which depending on how much data you have could be a hassle if you have no way of transferring data around to other storage devices. Formatting drives to something other than NTFS makes things much smoother on Linux. If you are scared of using the terminal to do partitioning (Which is totally fair. It can go really badly), GParted is a free beginner-friendly Linux GUI program you can get that will walk you through all of the steps for this. In my case, I ended up moving all of my stuff off my NTFS drives, formatting the drives to ext4, and then moving everything back. This took a bit but wasn't that bad. But this led to the next point of friction.
Point of Friction Number Two: Auto-Mounting Secondary Drives: fstabs and chowns Gallore
Same as the last one, if you only use a single storage drive this doesn't apply to you.
On Windows and older versions of Linux, secondary storage drives (SSDs/HDDs that aren't the one the OS is installed on) are automatically mounted on boot so they can be easily accessed. Not so on many of the modern Linux distros I tested (even Steam OS in desktop mode doesn't do this). By default, if you have a secondary drive to use, it needs to be manually mounted every time you start the OS. This causes a bunch of issues with things like Steam since, if you fire up Steam without one of the drives you are using for your library mounted, Steam won't see or be able to access any of the games installed there. Not good.
To fix this, you need to configure the OS to automatically mount the drive on boot. Many distros offer tools to do this for you but they seldom reliably work (the one in CachyOS, for example, didn't work for me at all. No combination of settings would get the drives to mount correctly on boot).
The old-school but good solution to this is a bit more technical than most would expect. I was hoping they would have added some type of simplified way of setting up automatically mounting drives but from what I can see, that still isn't the case other than distro-specific tools that, as I mentioned, are unreliable. To do this properly and permanently you still have to dig into configuration files from the terminal. Luckily once it's done you don't really have to think about it again and after you've done it, it will be way faster to do again as you'll be familiar with it.
The proper, permanent solution to this problem involves several steps, some which aren't beginner friendly. This also exists as an example of probably one of the most technical bits of tinkering you'll run into if you make the move over to Linux. If you can do this, you can probably fix anything:
- Kinda optional but also not: If you don't know how UNIX-style file/directory structure works or basic terminal commands, take like an hour and learn it. It's pretty simple and will be endlessly useful for you. If you can learn what the cd, ls, pwd, mkdir, rmdir, rm, sudo, and touch terminal commands do, you have learned like 95% of what you need to use Linux. I learned this stuff on my own as a 15 year old in the mid-00s before any of the modern resources for learning it existed so it's really not that hard. I'm sure there's probably a good Youtube video that can teach you it all in like 15 minutes nowadays.
- Make directories in the /mnt directory with the desired name for each drive you want to have auto-mount on boot
- Run the "lsblk -f" command, which lists out the names the system uses for your various connected drives (SATA-connected drives will be listed as /dev/sda with partitions listed as /dev/sda1, etc. NVME drives will be /dev/nvme0n1, /dev/nvme1n1, etc. with partitions like /dev/nvme1n1p1). Note the names of the partitions you want to mount along with their UUID numbers, which are super long gibberish hexadecimal labels. You absolutely need these two things if you want to go further on.
- Optional: Learn how to use Vim, Nano, or any other command line text editor. which I suppose counts as a step itself if you don't know how those works. This skill is essential for configuring Linux. Nano is really easy (just follow the hotkeys listed at the bottom), Vim less so but Vim is super powerful once you learn it. I use Vim constantly. It's great.
- Use sudo and a text editor to open the file /etc/fstab and add a line for each drive. Copy the formatting of the entries the OS already added but replace the UUIDs, mount points, filesystem types and with the options "defaults 0 2". Once this is done, your drives will now mount automatically but you can't actually use them yet. Restart your PC so the drives will mount to the place you indicated (you can do this without restarting but it varies how to do it by distro and bootloader so restarting is just generally easier)
Now for the fun part: file permissions. You need to change directory ownership from root to your user account for the mount points of each drive in /mnt. To do this you need to use sudo and the chown command. There's a bunch of guides on how to do so. It's really easy.
Test if you can paste a file into each new secondary drive in your file browser. It should theoretically work now. If it doesn't your file browser will warn you.
- Optional: if that didn't work, open the terminal back up and use the chmod command to give everyone write permission to the mount points. I didn't need to do this but apparently depending on how you configure things, you may, but probably not.
With all of this done, you should now be able to add drives to Steam trivially and install games there. It should just work. For most people who use multiple drives, this will likely be the most complicated setup thing they will encounter.
So yeah, it's not very easy but also isn't actually that bad when broken down into small steps. Apparently the vast majority of modern PC users now just use one big drive for everything now so if you are in that camp, you don't even have to worry about this.
Point of Friction Number Three: I Hope You Don't Rely on a Stream Deck
Simply put, the Elgato Stream Deck does not have official Linux support. There are open source Stream Deck apps that will make it generally work but they're unrefined and don't work nearly as smoothly as the official applications on Windows or MacOS. I have the Stream Deck Plus (the one with knobs), and found an app that allows me to use the knobs and touch screens alongside the buttons (if you just have buttons, there's lots of options). Functionality is limited compared to the official software though. You can still handle muting things, changing volume, opening apps, or controlling OBS or whatever so there's that. Just don't expect anything close to feature parity with Elgato's actual stuff. I mostly use my Stream Deck with my Mac so it's not a big deal for me but I know it will be for some people so I figured I'd mention it.
Credit where credit is due though. The few Linux Stream Deck software projects out there have made a ton of progress in the last few months. When I first tested out the Stream Deck on Linux 7 months ago things were in much worse shape. Now most of what I use a Stream Deck for is possible on Linux. It's just that last bit that is more esoteric that isn't possible yet.
Point of Friction Number Four: The Big One: Arch-based Distributions Still Aren't For Linux Beginners
Despite the Gamers wanting to be cool try-hards and use Arch Linux-based distributions like CachyOS and SteamOS, it needs to be emphasized that for non-gaming purposes, Arch Linux can still kind of be a pain in the butt and if you are new to Linux you're much better off going with something like Linux Mint or Ubuntu, both of which also will happily run games and use Proton and so on. It's not that most of the Arch-based issues I'm running into are difficult to deal with but more that they're really fiddly, annoying, and require a bit more background knowledge to solve. Ubuntu, Debian, and even Fedora/RHEL-based distributions have largely sanded away a lot of the rough edges I have been regularly running into with CachyOS's Arch base.
The big thing here is that essentially all Linux software is packaged to work with Ubuntu, Debian, Fedora/RHEL, etc. so you are almost guaranteed to be able to get some form of installer or other means of getting software if you use those versions of Linux, making installation trivial for anything. Not so much with Arch.
In CachyOS, by default for application packaging/installation there's only support for AppImages, the janky built-in GUI package manager called CachyOS Package Installer, and pacman, the default way of doing package management from the command line in Arch Linux. Every other form of application/package management has to be installed manually. You can install snapcraft and flatpak (two common tools for installing software on Linux) to mitigate some of these issues, but it's quite unfortunate they aren't included in the install by default since new users won't know about them at all. You can also install the Discover GUI software management app (if you've used Steam OS you'll have seen it since it's on there by default and is used for system updates) but again it's not normally included when doing so would be a huge boon for new Linux users.
The biggest reason I say Arch isn't beginner-friendly because I've found consistently that when looking up guides for how to do things I don't know on Linux, the extreme majority of the time they are written with Ubuntu in mind (if you see references to things called "apt" or "apt-get" when looking things up, then the guide is written for Ubuntu since Aptitude is Ubuntu's default package manager). If you are new to Linux and trying to troubleshoot a problem, these guides can be a huge time saver and learning resource. With Arch or other more niche versions of Linux you usually have to translate all of the instructions from these guides into something that will work with your OS, which again is something new users won't know how to do and can be tough if there aren't equivalent packages available on pacman or dnf or whatever.
Those were the biggest issues I've run into so far. Nothing too bad compared to the old days where sometimes you'd just boot up your Linux computer and your audio wouldn't function or your devices wouldn't work but they are things to keep in mind.
Important Tidbits of Info I've Learned in this Process:
Don't Throw Away Those Windows Game Installs
Since Linux Steam relies on Proton to run like 99% of games, it's downloading Windows versions of games anyway, so you can use your current Windows installs. The ol' Windows Steam Library trick to add an already existing library to Steam doesn't tend to work as well on Linux (it works fine if you have an established Linux Steam library, but adding one that was previously from Windows can be weird because of file symlink stuff). What you can do, though, is use Steam's handy "Back up game files..." option, which compresses a game down so it can later be expanded back out. I did this with every big game I had installed on Windows. All of them have worked perfectly when expanded using Linux Steam and then run. Between Baldur's Gate 3, FF7 Rebirth, Persona 5 Royal, and a bunch of others, this saved me over a terabyte of download bandwidth usage and a bunch of time.
Take 10 Minutes to go through the Settings Menu
Seriously, you are robbing yourself of the best part of Linux if you skip this step. Linux's customizability is a big part of why it's so good. Luckily, unlike modern Windows and their two (2) completely separate settings menus, one of which is a labyrinthine mess, most Linux distros have one settings menu that's easy to navigate and has most functionality surfaced to be as easy to find as possible. It only takes a few minutes to go through and you'll probably find at least one or two things you want to change or try out.
All of the Silly Linux BS and Customization from 15+ Years Ago Still Exists
My windows wiggle when I move them. My virtual desktops are arranged in a cube that animates like the GameCube system menu when I swap between them. Back in the day Linux used to be a really silly, whimsical OS and the silliness still exists, it's just buried a bit.
The more serious point here is that you can customize how your OS operates down to an extremely granular level. I completely removed the ability for my PC to turn off NumLock so my keypad part of my keyboard is always on. You can remap basically anything on your keyboard at a system level. Even the desktop environment itself can be tweaked in ways that Windows stopped allowing be possible with the launch of Windows 11. My desktop is currently set up like how DisplayFusion worked on Windows 7 (that will make sense to about two people) and it's wonderful. I missed it so much. Having labels on your taskbar for open windows instead of just logos: a good thing.
Abuse Steam's "Add Non-Steam Game" Feature To Install Windows Software
Seriously, this is a big one. Installing applications with Wine or configuring them to run with Proton by hand can be a bit annoying. Steam will handle all of this for you if you add something as a non-Steam game. Anything with a .exe or .msi at the end will work in this context. It makes adding and using Windows apps (not just games) on Linux genuinely trivial. I installed and ran the Battlenet launcher then Battlenet itself then Starcraft 2 all through Steam. You can pick which version of proton to use on a per-app basis and everything. I've seen people describe how they used it to run actual beefy pieces of software like Ableton Live as well. I've already run into several different situations where Wine has failed with an executable but launching through Steam using Proton works flawlessly. Things that shouldn't work somehow do anyway. It's wild.
Wine is Really Good and (Mostly) Easy to Use Now
If you don't want to go the Steam route to install Windows stuff, Wine is now much easier to use than in the past. I've used it to install Winamp and a Last.fm scrobbler, which both worked perfectly and could see each other. For particularly finnicky old games that you need to mount ISOs for, this is also a good option rather than flooding Steam with non-Steam games that are random installers that you then have to delete after.
My workflow with Wine and Steam is generally to use Wine itself to install things then add them to Steam to use with Proton. This has worked the extreme majority of the time I've done it so far.
Unless You Play Games that have Ring 0-style Anti-Cheat, Your Games will Probably Work
Proton and the newer Steam Linux Runtime (which is their new branded version of Proton) have made huge leaps in progress since the Steam Deck was released in 2022. It's to the point now that I generally haven't found any games yet that don't work outside of games with specific types of anti-cheat software (or Fortnite because Epic sucks and deliberately blocks it from working). It's not just that most games now will work, but that some actually run better on Linux than Windows now. The only games I've played in the last two years that haven't worked on Linux have been EA Sports WRC and Fortnite. Everything else I've tried to run has worked be it new releases or old late 90s/early 00s PC games I installed from ISOs. Even games I tested before that used to not work like Burnout Paradise now generally just work fine. It's wild.
Don't Bother With Emudeck for Desktop Linux
I used Emudeck to set up emulators on my Steam Deck and it generally worked fine. On desktop Linux it's a different story. I gave it a go and it made more of a mess that it's worth to the point that I completely uninstalled everything and redid it all manually. Despite advertising it as being usable on desktops too, a lot of Emudeck's configuration for emulators either was still Steam Deck-oriented or was straight up broken. Cemu and RPCS3 in particular I had big issues with. Even RetroArch had some funkiness going on, which I believe is related to Emudeck using an outdated configuration that hid a bunch of vital settings (you know, like "Import Content", the thing you use to add games to Retroarch. That was disabled from both the main screen and the main submenu where it normally is by default. Not great).
If You Use VLC, You Gotta Install Most of the Codecs Yourself
For whatever reason, unlike the Windows and Mac versions, the version of VLC available for Arch Linux is super barebones. It doesn't support MKVs, MPEG-2 (video from DVD), blu-ray, and a whole bunch of other things. To fix this you need to use your package manager to install a bunch of plugins to add support for what you want. It's not difficult but it is something you need to know ahead of time or it can be confusing since your files won't play and VLC will give off vague errors that don't tell you anything useful.
update: This is specific to the Arch pacman version of VLC available on pacman and the CachyOS Package Installer. If you are on Arch and want to use VLC, install it with snapcraft or flatpak and it should have all the codecs you'd expect.
If You Use Steam Big Picture Mode, You Gotta Enable GPU Acceleration Manually Or It Won't Run Well
By default Steam Big Picture Mode runs like complete garbage on Linux (I've seen this reported on a bunch of different distros). This is because Linux Steam has GPU acceleration disabled for all webviews, which Big Picture Mode is one. To fix this, you just need to go into the Settings menu under the interface settings and toggle on GPU acceleration. This completely fixes the issue, which is hard to search for because most search results are people being ornery about whether Big Picture Mode has a minuscule impact on game performance rather than the actual issue.
Trust Information from Actual People, Not AI Answers, if You Run into Problems
I shouldn't need to say this but here we are. Some people love using AI to try to troubleshoot their Linux problems even though they shouldn't unless they're already knowledgeable of Linux. Linux and system administration is one of the few areas where AI tools can be useful since there is such a breadth of information but you need context for the answers to be useful. The issue here is that Linux moves quickly and without proper context, AI tools like Gemini and ChatGPT can feed you either outdated or otherwise wrong answers that you won't know are wrong or outdated without experience (I noticed Gemini loves giving Ubuntu specific answers to general Linux questions, for example). I ran into a particular issue and after digging through several Reddit threads and finding the answer, my biggest takeaway was that people are dumb and need to stop trusting these AI tools. Through a few threads I saw roughly a half a dozen comments of people saying that the AI told them to configure something to fix an issue and it only made it worse or caused other problems. It's such a bummer to see this.
I Shouldn't Need To Say This Either But Please Be Kind If You Ask Others For Help
I'm not sure if it's because a lot of capital G Gamers are moving to Linux or what, but I've seen a lot of people recently, especially on Reddit (shocker), being weirdly rude and know-it-all-ish despite asking for help about something they clearly know jack shit about. The worst case was I saw a person posting their Gemini AI logs asking for help, people begging them not to use Gemini, and the OP blowing up at everyone for saying not to use AI. I also saw someone trying to do administration stuff like they were using Windows, people politely telling them that no, Linux doesn't work like that and they should just be using sudo for the task they are doing, and then the person telling all the people trying to help that they're wrong because sudo wouldn't enable them do the thing (sudo would definitely enable them do the thing). It really sucks.
So seriously, if you ask for help, just post your logs/error messages, be kind, and say thank you afterward. It goes a long way. I feel really bad for all of the mods of various Linux communities suddenly having to deal with an influx of toxic Gamer shitheads. From my past experience, most Linux communities (outside of the weird system wars-style people and evangelist types) are really chill and I hope that can continue.
A Bit on the Distributions I Tested Out
In total, I tested six different distributions though some in much more detail than others. A couple I just fired up in VMs to test while some others I installed on a spare SSD I had laying around and booted from USB to test
CachyOS
The distribution I am currently using. Very fast feeling and has a nice layout. Super customizable, etc. Feels a little more oriented towards the more technically savvy (though apparently they recently pivoted to being a "gamer" OS). Their GUI package manager appears to just be a frontend for the pacman terminal package manager so it's kind pointless because the installer part of it is straight up a terminal window. I initially loved CachyOS but over the last couple weeks the shine has worn off as I've had a few weird technical issues. However, their default applications are all bangers (Haruna is a fantastic video player. I wish I knew about it sooner) and they have by far the best peripheral support out of the box from what I've seen so far.
The more I use CachyOS, the more hesitant I am to recommend it to beginners. It's really good but it requires some technical knowhow of the Linux file system to use properly (command line package management knowledge is important for it). I'm likely to keep using it because the good currently outweigh the bad but again, I've used Linux for long enough that I'm pretty fast at troubleshooting things these days.
Plain Ol' Ubuntu
It's Ubuntu. The first version of Ubuntu I used was I think version 6. It's kinda been the same thing for about a decade now. It's rock solid. The UI is what it is so if you like it, great. It's not my cup of tea but it's fine. I could do some changes and just use Ubuntu but meh. But seriously, it's Ubuntu. It's always one of the most popular distributions for a reason. It works well, has most of the rough bits of Linux smoothed out, and is straightforward to use.
Linux Mint
The Linux Community has always had a weird attitude about Mint. A weirdly large number of people think of it as baby Linux or something stupid like that (the Mint folks go out of their way to make it beginner-friendly and naturally some Linux greybeards hate that) but honestly it's great. It's Ubuntu-based so it is maximally compatible with everything but the Cinnamon desktop environment included with it is, in my view anyway, way nicer than Windows and most other Linux desktop environments. When I used to dual-boot Windows and Linux, Mint was my OS of choice for years. The bit I tested of Mint recently reinforced my warm feelings about it. It's super polished and pleasant to use. It's also quite Windows-like in a lot of ways. For most people this is probably the one you want. It was my third choice behind CachyOS and Pop_OS!.
Zorin OS
This is a long one so I'll spoiler it.
I didn't hear about this one until quite recently but the pitch was enticing. It is directly targeting people moving off Windows and has a bunch of defaults that make it behave more like Windows than Linux. Their bespoke desktop environment is quite pleasant while also being highly customizable. It's supposedly trivially easy to auto-mount drives and do various other things too. Everything they pitched made perfect sense.
Then I actually installed and tried it. Zorin OS's shine wore off faster than any other version of Linux I've ever used, even back in the Stone Age of Linux when things would be super broken out of the box. Zorin OS is indeed super slick and stable. The downside is that it is very heavy-handedly configured and many of the default applications are not customizable at all. Their default file browser is really, really bad, for example, and you can't do anything to add back useful features commonly found in other file browsers. Their terminal defaults are stock Ubuntu but the terminal shell program itself appeared to have most typical settings removed so your only options were to change the colour and font of text. All of the built-in applications for it sucked and I found myself downloading others for nearly everything to the point where I was wondering "Why am I even bothering?".
Then there was the ultimate sin they committed. As part of a kernel update of Linux a couple years back they added native controller support for all of the major game controllers (Xbox, DualShock 3-5, Switch Pro Controller, etc.), so most controllers to a certain extent should now Just Work on Linux now at a basic level. Not so on Zorin OS. They did something bizarre with controller drivers. My DS4 was being detected as an Xbox 360 controller but was barely working with anything. I could not get it to work with any Steam game despite Steam showing that it recognized the controller. It would not work even with every Steam Input trick I knew. This same controller worked fine with every other distro I tried so it is something specific to Zorin.
This was coupled with Steam on Zorin behaving very bizarrely. Big Picture Mode barely worked and games running in windowed mode were very finicky (not to mention the Steam Overlay barely worked in some games. Again, just weird). It made no sense either since Zorin is just Ubuntu under the hood, and Steam on Ubuntu has been a solved issue for over a decade now. I had enough issues with Zorin OS that it was a big red flag.
At that point I tapped out and moved on.
Bazzite
I'll spoiler this one too because it's also kinda long.
Bazzite was the new hotness last year. All of the people desperate to sound like they were in the know about Linux sang the praises of Bazzite. I used Bazzite for about three weeks and the longer I used it, the more I believed a lot of the people hyping up Bazzite were bandwagon jumping and/or had never actually used it. It was nice to use but extremely janky and at the time had basically no established knowledge base online so good luck if you had any issues (it's still a relatively niche OS and from what I can see is still lacking in that big searchable knowledge base of info online, making it extremely not beginner friendly on desktops), which, because of how Bazzite works, is a huge problem.
For those who don't know (seriously if you don't care about technical stuff just skip the rest of this), Bazzite is an image-based operating system, which I first came across in Mac OS in like 2016 or something like that whenever they started doing it (all of the Apple OSes from what I remember work this way now). This means that basically, the operating system is unmodifiable by the user because when updates are done, they essentially do a clean install of the OS and drivers but don't touch any of your files or programs (think of it as taking out one memory card containing the OS and plugging in another). Macs have done this for years and it has a lot of benefits for closed hardware environments where nothing is likely to change (say a laptop or a Steam Deck-like device). Steam OS is also image-based in the same way, which makes sense since it currently supports a fixed set of hardware configurations. When it comes to more complex hardware setups like desktops, it can be problematic.
The downside of this is you lose a lot of flexibility when it comes to drivers and the like since those tend to be locked down as well. If the default included drivers work for you then great. When I tested Bazzite I encountered multiple device drivers that would not work well and replacing them (at least at the time, maybe they've made this easier now) was an extremely finicky and bad process that if went wrong could brick your OS install. Most notably for me, something was going very wrong with the included Nvidia graphics drivers they installed. I ran into probably a dozen different common games that would not work properly no matter what settings changes I did. Persona 3 Reload, for example, barely ran at all. It wasn't that it couldn't run at 60 FPS but that something was causing the frame timing to be so erratic that it was unplayable (it was like playing an old multiplayer game on an unstable connection). Cyberpunk 2077 also behaved in a similar fashion. Same with Elden Ring. Game after game had weird performance issues I'd never seen before. I tried troubleshooting the issue but most solutions were more work than just reinstalling a different OS.
So I gave up on it. I was spending more time troubleshooting than actually using my computer and that's not what I want to do with my time anymore. Maybe Bazzite is better now but at the time it was pretty rough to use on desktops.
Pop_OS!
Despite having an annoying name, Pop_OS! rules. It's an Ubuntu derivative built by the folks who make and sell the System 76 Linux laptops. Pop_OS! has resources behind it and you can tell. I used it for a month last year and outside of a few things the first couple days, it worked smoothly and without any issues. It has a good built-in software store that works quite nicely and a lot of sane defaults, making is very straightforward to use for new and advanced users alike. It has a layer of polish that other distributions sometimes lack.
The only reason I'm hesitant to use or recommend it right now is that the Long-Term Support (LTS) version hasn't been updated in a while and the new version has been delayed for over a year, so OS updates haven't been coming with any real regularity. It's still getting security updates so it's fine to use but it's just is way behind most other Linux distributions in terms of features right now. They have a major revision coming soon and I'm quite curious to give it a go when it does. I could test the alpha version of it right now but I'm way past my days of testing out unfinished software.
Also I guess technically Steam OS
I've been using a Steam Deck for a couple years so I have spent a fair amount of time with Steam OS. Obviously as of right now it's not something you can actually test on a desktop PC but it is available for a bunch of handhelds. If/when they actually do release a desktop version I'll definitely give it a shot.
Conclusion
So there you go. That's been my experience with a fulltime switch over to Linux so far. If any of what I've written about has put you off, just know that if you instead use an Ubuntu/Debian-based distribution, most of these issues I've described will not crop up. If you are starting from scratch with no Linux experience, ignore the people online telling you to use an Arch distribution and go with either Ubuntu itself or one of the many derivatives of it. It'll make things way easier for you not only because Ubuntu has the widest support for everything but also because there is a huge breadth of information for troubleshooting it specifically online (they have a dedicated Ubuntu forum with decades of posts). Any issue you run into will likely have been seen before and solved by others already so it'll be much easier to find fixes.
Outside of that, if you only use your PC to use a web browser and play games, it's entirely possible to do so now on Linux unless you play a very specific (though popular) subset of games. If your tastes are more towards singleplayer games you generally should be good. Most multiplayer games work too except for the notable ones that have specific types of anti-cheat.