The Linux Desktop in 2023
After the surprising success of my attempts to use FreeBSD as a desktop OS1 I decided to embark on using Linux for the role. The reasons are similar to those for choosing FreeBSD but with a larger list of positives.
Valve have recently released the Steam Deck, a handheld gaming console that runs a custom version of Linux, and with it came a raft of significant improvements to Linux compatibility within the steam world. Combined with the first class support now offered for dotNet on Linux by Microsoft I felt sure that this experiment would turn out successful.
The Results
In short this experiment has been a massive success and for the past 6 months I have used Linux as my sole desktop OS. The process has been smoother than my experience with FreeBSD and has given me reason to champion this use case. There have been hurdles and compromises but thanks to a wealth of information and some perseverance the end result has delighted me.
The Good
As noted (somewhat frequently) during my exploration with FreeBSD a good portion of the software I was using on Windows has made its way to Linux. This includes my development toolkit of choice Microsoft's dotNet and their new text editor Visual Studio Code. Installing both was straightforwards with no issues by following the instructions provided by Microsoft. Code is included in the software packages for Ubuntu which means a single command to install and automatic updates provided by the system if requested. dotNet is provided direct from Microsoft (given the nature of version support this is useful) and was installed again with no issues.
My web browser of choice Vivaldi is not in the software packages but installed from the website in a few clicks. Once installed it runs smoothly as expected and supports the extensions I use without issue. Performance is about as good as Vivaldi gets (good, but not as fast as chromium) with some minor issues when using GPU acceleration. More on that further on.
Steam again provides a native Linux client and again is not in the software packages but installed from the website in a few clicks. After installing it runs flawlessly. Discord likewise provides a native client and is downloaded from the website, while it runs perfectly well (including voice calls and screen sharing) it can be prone to failing to auto-update and require uninstalling and re-installing to work. This does only take 2 clicks2 and it doesn't forget your details so while not perfect is a mild inconvenience.
Every game I’ve tried so far has run and the performance has been excellent. Proton through steam is an incredible experience that requires a slight menu dive to enable. While playing Cyberpunk 2077 I was even able to force RTX mode to be enabled despite this only being supported with DirectX 12. The performance of which was as rough as expected on a 3060 Ti but demonstrated just how capable Proton is. I did experience some crashes while trying out the full-RTX Psycho mode but these may well have been due to the game. With the regular settings I happily completed the entire campaign without trouble.
There are a handful of other utilities that I need which I either expected to find compatible versions or equivalents for. An important one was my secret management tool KeePass, while I could find a new tool if no options existed I wanted to continue using it, luckily there are Linux clients although picking one from the website was a touch confusing. Once picked it opened my existing stores without trouble and has been working well since, minor issue is the lack of "alt-tab" mode where hitting the paste command on the KeePass window tabs to the previous window and automatically pastes the password. I had become a heavy user of the Snip tool for taking specific area screenshots without hassle, this has been replaced by Flameshot which supports many more features however it lacks the ability to take a new screenshot by being called again. This is required when needing to take a shot of a context menu that will vanish if the focus is lost. I'm sure I can configure some global key-binds for it instead and it features a delay mode to help with this issue as well so no major loss.
The Drivers
Video drivers have always been a touch point for Linux with various efforts from both the main vendors and open source alternatives. I've always been an nVidia user since the very first GeForce and with the many horror stories of AMD drivers still circulating I would not be switching teams. This PC would be using a 3060 Ti FE and I expected nVidia's official drivers to work well.
On installing Xbuntu I was greeted with a full graphical installer and booted up into a complete XFCE desktop first time with no issues. This was being provided by the open source Mesa drivers shipped with Xbuntu. While these drivers worked well enough for desktop usage the resulting image did demonstrate some odd softness and so I used the inbuilt software manager to switch to the nVidia closed source drivers. This was a little confusing and required secure boot to be possibly enabled, but after a few restarts I got the nVidia drivers working correctly. The result was a noticeable sharpening of the image output and full hardware acceleration available.
I understand the reason behind the closed source drivers and why the open source ones are unable to match their performance but as someone who wants hardware acceleration to just work I have no issue with the situation. Being a desktop user with a standalone GPU does mean I'm the target platform for the closed source drivers and things are not as rosy when moving away from it however I have never considered Linux to be a viable laptop OS. This is almost certainly the most controversial opinion here!
Once installed and with everything settled the 3D graphics performance has been fantastic both in native applications and through Proton. The 2D performance for compositing has noticeable lags in menus in Vivaldi and VSCode but not in Discord or Steam. These can be removed by disabling hardware acceleration but this then impacts things like video decoding, canvas/webGL and scroll performance.
Getting temperature sensors to work did require an extra driver which I did have to track down manually. With the default installation only a handful of CPU temperature results were available. Thanks to some friends I was able to find the correct chipset for my motherboard and while I did have to download a package from GitHub it installed first time and gave me a full set of temperature, fan rpm and voltage readouts.
The Frustrating
There are many small annoyances still that won’t stop me from using Linux but can build up over time. When logging in the screen rotation is not set so I have to type my password at 90 degrees on my vertical screen as this is the first display but it is not the primary display (this might have been fixed already). Similarly when returning from being locked the password box is on whichever screen the mouse was last on and not the primary display. Both somewhat minor issues and probably have solutions if I spent a day looking for them but do not inspire confidence.
Other hard drives are mounted automatically, which is great, but the mounting is done after log-in which results in my wallpapers being reset every reboot. Takes a minute to re-set and I might just copy the wallpaper folder (it’s quite large) to the boot drive to avoid this one. Restarts themselves are quite infrequent so this only causes frustration once a month at most.
The file upload dialogue for Discord etc. started out having a preview window but it vanished after a few weeks of use and has never re-appeared. Searching for this does not provide any useful information although it seems that it has happened to a few other users. Thumbnails are still visible so picking the right file is usually not a problem.
In Conclusion
This post is quite short as for the most part everything has just worked! I originally started writing much earlier in the year but as nothing gave cause for writing about I’ve not had any impetus to finish this post. While I’ve yet to work commercially on Linux I’m not expecting any issues as working with FreeBSD already demonstrated the majority of my daily tasks were possible.
You may notice the lack of a “Bad” section and this is because I am continuing to use Linux as my primary OS. There really are no downsides for me at this time. While I am being pushed away from Windows by the choices Microsoft are making it is very clear that Linux has advanced leaps and bounds towards being a viable competitor. With Valve’s continued support it may become the preferred desktop platform.
There is always some level of churn in the Linux world as to which distribution to pick and so on. Ubuntu and co are not particularly fashionable anymore so it may come as a surprise to find me recommending them. For people who need a reliable OS and don’t feel the need to stray far from the defaults I cannot recommend Ubuntu (Kbuntu or Xbuntu or so on) enough.
Originally published on 2023/06/14