Full Time Linux
A few months ago I replaced my primary desktop, which I originally built over 8 years ago. With the looming threat of tariffs and Windows 10 End of Life in October I figured it was as good a time as any to finally upgrade. I also took this as the opportunity to switch my desktop over to Linux, something I've been wanting to do for some time now. I've used Linux on all my other systems (and Windows Subsystem for Linux on the desktop) for years at this point, but the state of gaming on Linux wasn't quite where I wanted it to be to permit a full switch over. With all the progress made by Proton I figured it was time to finally give it a try, and a few months in it's going quite well!
Hardware
The parts on my old system were either old or slow enough that it didn't make sense to me to reuse any of them for my new build, so everything was picked for this build specifically. The overview of the config is:
- CPU: Ryzen 9800X3D
- GPU: Radeon 7600 8GB
- RAM: 64 GB
- Storage: 4TB NVMe
- Monitor: 1080p 165Hz (dual monitors)
It's definitely overkill in some ways, but I want this to system to last me another 8 years like my last one did. I was worried about how the Radeon 7600 would perform, but it is more than enough given the games I play (which I'll cover further down) and a resolution of 1080p. That said, I still plan on upgrading the GPU to make it a better match for the 9800X3D. I originally planned on buying the 7800XT (or XTX), but it was out of stock when I was looking so I settled with the 7600 to get everything I needed. Once the prices on GPUs come down I'll either pick one up or go for the 9070XT, and then re-purpose the 7600 for a living room PC (along with some other components I have around).
Going full AMD for this build has worked out great, drivers and performance have been phenomenal. The hardware has given me almost no issues (I'll describe them below), and I'd recommend this config in a heartbeat.
Operating System
Almost all of my experience with Linux has been on Ubuntu based systems. My old laptop (currently used as my living room computer) runs Mint, my current laptop (HP Dev One) runs Pop!_OS, and my work laptop runs Ubuntu. I decided on Pop!_OS (which I will just call Pop going forward) since I've had a great experience with it on the Dev One (albeit I installed Cinnamon on that).
Overall I enjoy using it a lot, but I will say that System76's current focus on developing the COSMIC desktop environment shows. Pop is still based on Ubuntu 22.04 and Linux kernel 6.12, and the system apps and general tweaks do not mesh with GNOME as well as I think they could (using Mint, Cinnamon, and their built in tools as a point of comparison). Given that, if you are looking into Linux but unsure of which distro you want to use then I would recommend looking at Mint for a Windows-like desktop environment and good built in tools, Ubuntu if you want that experience and GNOME, or Fedora for keeping things as up to date as you can (short of something like Arch) with a variety of supported desktop environments. Even more than any of those though I recommend using a VM or a second hard drive to dual boot and trying out the options yourself to see what will work best for you. Different people will recommend different options, so rather than being afraid of choosing the wrong one I think it's best to view that as there are many good choices you can make (which there are)! Play around and try things, this isn't Windows, you don't need a license.
I don't want the above to be taken as me saying that Pop isn't a good OS. I've been happy with it and don't plan on replacing it unless something else happens to push me somewhere else. I've gotten it configured to a place where it works great for me, and I'm looking forward to seeing what System76 can accomplish with COSMIC.
Troubleshooting the issues
My experience, while positive overall, hasn't been 100% without issues. Here's what I have encountered so far:
ASUS Ethernet issues
- My motherboard (ROG STRIX B850-I GAMING WIFI) along with other ASUS motherboards with the 2.5 Gb Ethernet port all have an issue with the Ethernet connection simply cutting out and not returning without a reboot. As best as I can tell this happens across operating systems, and is a driver related issue.
- I did try installing drivers from Intel but that did not solve the issue. What ultimately worked was buying a USB C to Ethernet adapter to use in one of my spare USB C ports. It's a silly solution and not something I should have to do with a high end motherboard like this one, but it works so I'm not going to complain about it too much.
Steam not launching
- Steam would launch fine from the command line using the
steam
command, but from the GUI the process would start but no window would appear. - I found the fix on this reddit post: In interface settings disable "Enable smooth scrolling in web views" and "Enable GPU accelerated rendering in web view
- As an aside, this also disables "HEVC (H.265) video codec" in the Steam Game Recording feature, which may affect the quality of the recordings. As an example, here is one recording I captured. I plan on testing this some more, and may write a follow up blog post based on what I find.
- Steam would launch fine from the command line using the
Quiet Arctis 7 headset output
- My headset has a "ChatMix" dial, which lets you easily balance between voice chat like TeamSpeak/Discord and game audio. I love this feature and it is actually supported well in Linux, with it being recognized as one device with difference configurations (Chat Out + Game Output + Chat Input vs Game Output) instead of completely separate devices (Game and Chat).
- The issue is that the chat output was incredibly quiet, meaning I had to significantly lower game output to equalize them at all, defeating the point of the dial.
- Mateu Aguiló noticed the same issue and provided a fix in his blog, which is to use
alsamixer
and make sure the volume on each channel is the same (or balanced however you like). This worked, but unfortunately his advice for how to save the settings (sudo alsactl store
) did not work for me, nor did other advice I found online, and I need to do this each restart. - Rather than rely on the
alsamixer
UI to accomplish this, I use the following command:amixer -c S7 sset PCM 64
and that accomplishes the same effect. You may need to tweak the command slightly based on your set up. I additionally created an alias for this (s7-balance
) which makes it simple to run on startup.
Viewing boot options
- I installed Windows on a partition just in case I still needed to use it (and so far I haven't, yay!) and the default config simply booted to Pop without displaying Windows as an option. I followed this guide to enable the boot options menu so I don't need to select Windows in the BIOS.
Broken audio in Discord
A recent update broke audio output for Discord in calls, seemingly across multiple installation options. It worked in the website client, and following another update is working on the desktop client again.
Discord doesn't do a good job of supporting Linux users. One can hope that with SteamOS and the possibility of Linux market share increasing over time this will change, but I'm not holding my breath.
Tweaks, tools, and tips
To stress test my CPU and my cooling set up I found this article and command:
for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
- I pair it with BTOP++ to view my CPU temp, and BTOP has become a favorite of mine to have open on a second monitor while playing games
- This command and BTOP don't benchmark your system like cinebench or similar do, but the performance in the games I play is what matters to me, not that score
Dual monitor wallpaper
- My second monitor is in a vertical orientation, which means I want to set the wallpaper separately for each. GNOME seems to have really bad support for dual monitors! Windows 10 (not sure about 11) has better support for dual monitors than this, which just seems backwards to me.
- I used HydraPaper to set my wallpaper. It's a bit finicky and you need to use light theme for it to work properly (you can switch to dark after it has set your wallpaper), but it does what I need it to.
- Shout out to AuraHack, both of my wallpapers are from her
PowerToys FancyZones replacement
- I fell in love with FancyZones in the last few weeks of my time using Windows once I got my second monitor, it's the best tool I've seen for managing vertical monitors on Windows. I've found having three windows stacked on top of each other off to the side, or stretching them vertically as I see fit, to be a great use case for the second monitor.
- The Tiling Shell GNOME extension is the best tool I've seen to replicate this functionality. I absolutely love it, maybe even more than FancyZones.
Command line aliases
- I mentioned my
s7-balance
alias above but I have a few other ones set up, mostly for syncing files withrsync
orrclone
which are both great tools. Remembering the exact flag to use and the file paths on the remote can be frustrating, so I have aliases set up to manage and sync files such as my KeePass file and backup files. I highly recommend using a setup like this if you are frequently moving files in in the same way, since after the initial set up using commands can be significantly faster than using GUIs.
- I mentioned my
Python environment management
- If you use Python frequently I highly recommend using Miniforge. I started using it at work and found it to be such a nice experience that I started using it personally. I won't go into all the details with it, my one tip is to go through set up as usual and enable automatic base environment activation, but then go back and disable it with
conda config --set auto_activate_base false
. This removes the environment from your bash prompt saving screen space and making it look cleaner, and also avoids installing to your base environment (which it's best practice not to).
- If you use Python frequently I highly recommend using Miniforge. I started using it at work and found it to be such a nice experience that I started using it personally. I won't go into all the details with it, my one tip is to go through set up as usual and enable automatic base environment activation, but then go back and disable it with
fzf
- fzf (fuzzy find) is one of the single best improvements I have applied to my command line, making the ctrl+r shortcut significantly more useful. It's also very powerful. This is plenty on its own, but it's a lot more powerful, as demonstrated in this video.
bat
, a tool similar tocat
(and another one I recommend checking out) shows an example of an integration with fzf:fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"
which shows you a preview of all the files in your current directory (and subdirectories). It also supports the mouse cursor if that's your thing! (I always prefer keyboard navigation if I'm in the terminal, but hey it's cool) - There's a lot of very neat things you can do with fzf that I'm not even scratching the surface of in my own usage. I highly recommend trying it out yourself and seeing if it can improve your own workflow!
- fzf (fuzzy find) is one of the single best improvements I have applied to my command line, making the ctrl+r shortcut significantly more useful. It's also very powerful. This is plenty on its own, but it's a lot more powerful, as demonstrated in this video.
Gaming
Gaming has been much the same story as the rest of my experience with Linux on this machine: a great overall experience with a bit of troubleshooting here and there. Valve and CodeWeavers have done a phenomenal job with making Steam Play/Proton a nearly seamless process, and I think they deserve a lot of credit for pushing Linux adoption on the desktop to a broader audience.
My main game (especially lately) is Planetside 2, so naturally it was going to be the one that I had the most issues with. I encountered severe hitching which rendered the game unplayable approximately 45 minutes into every session. This is a known issue with Planetside 2 on Linux, so I tried some of the recommended trouble shooting tips I saw online, including tweaking the launch options. Unfortunately those did not fix the issue, but simply enabling the Steam overlay did. I did need to change the overlay hotkey since I regularly press shift+tab when playing Planetside, but that's a sacrifice I'm willing to make for the game to run perfectly as it does now (at least as perfectly as Planetside can, any issues at this point aren't because I'm on Linux).
Other games I play have been even smoother experiences! For a quick overview:
- PowerWash Simulator (including multiplayer)
- GRIS (with an Xbox controller)
- shapez 2
- Dr. Robotnik's Ring Racers (installed via flatpak)
- Halo: Master Chief Collection (including multiplayer)
- Bomb Rush Cyberfunk (same Xbox controller)
All worked flawlessly, with no tweaking required. I was really pleasantly surprised about the Xbox controller too, I was expecting to need to install some drivers for it but it seems Pop or Steam has them right out of the box. I do know that Rusty's Retirement unfortunately has issues with transparency (its entire gimmick) on Linux, so I have not tried it. I have also used Steam in home streaming and it has worked great streaming from both Pop and Windows 10 (on my old desktop) to the Mint machine in the living room.
Obviously the games I play are a narrow sampling and not representative of the latest (and greatest?) games, but I have found ProtonDB to be an accurate overview of how well games run. I also know from some of my friends that VR is a rough experience on Linux, although I have to say that I am optimistic on that front given how much effort Valve has put into both Linux compatibility and VR, including software and hardware for each. I hope and think that with time we will see the two efforts overlap.
The takeaway
Switching to Linux has been fantastic for my use cases, and I'm really glad to have finally made the switch on my last remaining system. My use cases (non-VR gaming, programming, web browsing, office suite) are well supported by it at this point, and honestly I'm just really glad to no longer need to deal with all of Microsoft's crap in Windows, especially Windows 11. It's been especially great to take one more step away from using Microsoft products given the ongoing BDS boycott against it.
I know Linux isn't for everyone and not all use cases are all the way there, but I still highly recommend trying it out through dual booting or similar if you haven't already. If specific software you use doesn't have native Linux support try running it through CrossOver (it's cheaper than a Windows license!) or Wine and seeing if you can get it to work. CrossOver and Wine each have compatibility websites here and here so you can get a sense of things without needing to install either.
Linux has also been great at reviving old systems that performed poorly when running Windows (which is why my old laptop is running Mint in the first place!), and between the tariffs and Windows 10 EoL coming up it is more important now than ever to keep computers running as long as you can. A computer not being compatible with Windows 11 does not need to be a death sentence for it, and it shouldn't be one.