Steam Powered - Make your own Linux based gaming console

I’ve been mulling moving over to Linux full time for personal gaming use for quite a few years but since I got my Steam Deck last year, I’ve realised it’s perfectly viable now thanks to Proton. Problem is, the Steam Deck isn’t quite powerful enough for my 4K TV in the living room and Valve don’t actually release a desktop version of SteamOS anymore. After a bit of searching I found that most of the popular mainstream desktop distros like Ubuntu LTS are months to years behind the latest driver updates needed to run most games on launch and as such aren’t always the best choice either.

This left me with a few options:

  1. Build my own Arch Linux install with blackjack and hookers the latest updates.
  2. Use a gaming distro like HoloISO or ChimeraOS.
  3. Use a rolling distribution like Manjaro or openSUSE Tumbleweed to take the heavy lifting away.

I opted out of option one as it seemed like a time sink. I did indeed try option 2 for a while but I chose ChimeraOS over HoloISO as it A) predates the Steam Deck/modern SteamOS incarnations and B) is more regularly updated than HoloISO. This worked pretty well for a while until Resident Evil 4 hit and I got the wonderful black square issue:

Resident Evil 4 Bug

Urgh. That was actually caused by an issue with Mesa that required an update. Neither Valve or the Chimera OS team released this for a little while but as soon as I upgraded, I ended up getting this bug and could only boot into a black screen. I chatted to the devs on their discord and they were super friendly but they couldn’t figure out my issue and I gave up.

NB I did try manually updating Mesa before upgrading but on an immutable OS like ChimeraOS this is difficult and such changes are often overwritten during updates anyway.

That left option 3. I wasn’t happy with some of Manjaro’s known issues and I wanted the option to use secure boot if I needed, which left openSUSE Tumbleweed. As a version of openSUSE with snapshotting and fast updates, it seemed the best bet. I installed it with KDE to mimic the Steam Deck’s desktop and away I went.

So I finally had installed a Linux distro that could run my games well without issue but how could I make this more console like? The first thing I did was set Steam up to boot into “Big Picture” mode. This has had a revamp and is now much more like the Steam Deck gaming mode layout but misses a few things - you don’t get MangoHud out of the box for instance.

Once I had that, I needed to make sure I could use the PC without getting up off the sofa. I updated the firmware on my Xbox controller and Xbox wireless headset then connected them manually via bluetooth. I then configured Wake on Lan so the PC could be remotely activated as long as it had a wired ethernet connection. I use an iPhone app called “Wake me up” to send the magic wake up packet to my network broadcast address which works like charm.

I then manually installed MangoHud and used GOverlay to globally enable it but set it to hide by default. I set the “toggle” key to F1. I then configured Steam to change the share button on my Xbox controller to actually send and F1 key press and voila, a basic Steam Deck like performance overlay feature is bodged into my configuration. This is useful when tweaking settings to get the best performance as my RX 6700 GPU isn’t quite good enough for 4k at max settings for most new games.

I was mostly there and switching between my homebrew console and the Steam Deck without issue via Steam Cloud but I suddenly noticed something odd - sometimes some games would crash to the Steam UI without warning but not on the Steam Deck, only my desktop PC. After a bit of reading I realised that I had to boost the vm.max_map_count setting manually to make sure gaming processes didn’t crash when trying to use more memory maps than expected. This solved the problem and made me feel chuffed that I had fixed it myself without giving up again and hopping to a new distro.

I was almost there. The final problem was anytime I wanted to run updates or configure anything non gaming related I had to plug in a keyboard and sit by my TV which was annoying. The solution was simple: VNC! I used Remmina as a client from my Ubuntu laptop. I did have to manually add a firewall exception for VNC via YaST which is an openSUSE tool I’d never used before but after that everything just worked. I’ve not needed to plug anything directly into the PC since; It just sits on the floor by the TV without a care in the world other than the odd dust cleaning session now and then.

Finally, I had it - a working Linux gaming console that gets some updates faster than a Steam Deck does. I’ve had no compatibility issues with it either as anything the Steam Deck can run will run here as well. The joy of Linux means hardware upgrades are simply plug and play as long as my kernel is up to date. With openSUSE tumbleweed this is a given as long as I remember to apply the updates themselves now and then.

Would I recommend this for everybody? No. Is it perfect? Far from it, I’d prefer a real desktop Steam OS release from Valve, but I think we all know not to wait for Valve to do things if they haven’t announced them fully by this point. I don’t have the same ability to lock the framerate or set scaling options as you do on a Steam Deck due to not using gamescope. My MangoHud hack works but isn’t easily configurable while in a game like it is on a deck. Sometimes I get bugs that just don’t happen on the deck because I’m using an entirely different distro although like a deck I can “roll back” to an earlier snapshot should I need to.

All that aside, if you like your Steam Deck but want to game on something a bit beefier with a discrete card without leaving the Linux ecosystem I can heavily recommend this approach. I hope this helps you find a new way to play your PC games. The best part? All of this software is 100% free and most of it is open source. The year of the linux desktop is finally here - sort of.