| Title: Trying some Linux distributions to free my Steam Deck | |
| Author: Solène | |
| Date: 16 April 2023 | |
| Tags: gaming linux | |
| Description: In this article, I'll share my experience after trying | |
| different Linux distributions on a Steam Deck device. | |
| # Introduction | |
| As the owner of a Steam Deck (a handeld PC gaming device), I wanted to | |
| explore alternatives to the pre-installed SteamOS you can find on it. | |
| Fortunately, this machine is a plain PC with UEFI Firmware allowing you | |
| to boot whatever you want. | |
| # What's the deck? | |
| It's like a Nintendo Switch, but much bigger. The "deck" is a great | |
| name because it's really what it looks like, with two touchpads and | |
| four extra buttons behind the deck. By default, it's running SteamOS, | |
| an ArchLinux based system working in two modes: | |
| * Steam gamepadUI mode with a program named gamescope as a wayland | |
| compositor, everything is well integrated like you would expect from a | |
| gaming device. Special buttons trigger menus, integration with | |
| monitoring tool to view FPS, watts consumption, TDP limits, screen | |
| refresh rate.... | |
| * Desktop mode, using KDE Plasma, and it acts like a regular computer | |
| Unfortunately for me, I don't like ArchLinux and I wanted to understand | |
| how the different modes were working, because on Steam, you just have a | |
| button menu to switch from Gaming to Desktop, and a desktop icon to | |
| switch from desktop to gaming. | |
| Steam Deck official website (with specs) | |
| Here is a picture I took to compare a Nintendo Switch and a Steam Deck, | |
| it's really beefy and huge, but while its weight is higher than the | |
| Switch, I prefer how it holds and the buttons' placement. | |
| Steam Deck side by side with a Nintendo Switch | |
| # Alternatives | |
| And after starting my quest to free my Deck, I found there were already | |
| serious alternatives. Let's explore them. | |
| ## HoloISO | |
| This project purpose is to reimplement SteamOS the best it can, but | |
| only using open source components. They also target alternative | |
| devices if you want to have a Steam Deck experience. | |
| Project page | |
| My experience wasn't great with it, once installation was done, I had | |
| to log in into Steam, and at every reboot it was asking me to log-in | |
| again. As the project was mostly providing the same experience based | |
| on ArchLinux, I wasn't really interested to look into it further. | |
| ## ChimeraOS | |
| This project purpose is to give Steam Deck user (or similar device | |
| owners) an OS that would fit the device, it's currently offering a | |
| similar experience, but I've read plans to offer alternative UI. On | |
| top of that, they integrated a web server to manage emulations ROMS, or | |
| Epic Games and GOG installer, instead of having to fiddle with Lutris, | |
| minigalaxy or Heroic game launcher to install games from these store. | |
| The project also has many side-projects such as gamescope-session, | |
| chimera or forks with custom patches. | |
| Project official website | |
| My experience was very good, the web server to handle GOG/Epic is a | |
| very cool idea and worked well, the Steam GamepadUI was working as | |
| well. | |
| ## Jovian-NixOS | |
| This project is truly amazing, it's currently what I'm running on my | |
| own devices. Let's use NixOS with some extra patches to run your Deck, | |
| and it's just working fine! | |
| Jovian-NixOS (in reference to Neptune, the Deck codename) is a set of | |
| configuration to use with NixOS to adapt to the Steam Deck, or any | |
| similar handeld device. The installation isn't as smooth as the two | |
| other above because you have to install NixOS from console, write a bit | |
| of configuration, but the result is great. It's not for everyone | |
| though. | |
| Project page | |
| Obviously, my experience is very good. I'm in full control of the | |
| system, thanks to NixOS declarative approach, no extra services running | |
| until I want to, it even makes a great Nix remote builder... | |
| ## Plain linux installed like a regular computer | |
| The first attempt was to install openSUSE on the Deck like I would do | |
| on any computer. The experience was correct, installation went well, | |
| and I got in GNOME without issues. | |
| However, some things you must know about the Deck: | |
| * patches are required on the Linux kernel to have proper fan control, | |
| they work out of the box now but the fan curve isn't ideal, like the | |
| fan will never stop even under low temperature | |
| * in Desktop mode, the controller is seen as a poor mouse with triggers | |
| to click, the touchscreen is working, but Linux isn't really ready to | |
| be used like a tablet, you need Steam in big picture mode to make the | |
| controller useful | |
| * many patches here and there (Mesa, mangohud, gamescope) are useful to | |
| improve the experience | |
| In order to switch between Desktop and Gaming mode, I found a weird | |
| setup that was working for me: | |
| * gaming mode is started by automatically log-in my user on tty1 with | |
| the user .bashrc checking if running on tty1 and running steam over | |
| gamescope | |
| * desktop mode is started by setting automatic login in GDM | |
| * a script started from a .desktop file that would toggle between | |
| gaming and desktop mode. Either by killing gamescope and starting GDM, | |
| or by stopping gdm and startin tty1. The .desktop was added to Steam, | |
| so from Steam or GNOME I was able to switch to the other. It worked | |
| surprisingly well. | |
| I turned out Steam GamepadUI with Gamescope button "Switch to desktop | |
| mode" is using a dbus signal to switch to desktop, distributions above | |
| handle it correctly. | |
| Although it was mostly working, my main issues were: | |
| * No fan curve control because it's not easy to find the kernel | |
| patches, and then run the utility to control the fans, my deck was | |
| constantly doing some fan noise, and it was irritating | |
| * I had no idea how to allow firmware update (OS above support that) | |
| * Integration with mangohud was bad, and performance control in Gaming | |
| mode wasn't working | |
| * Sometimes, XWayland would crash or stay stuck when starting a game | |
| from Gaming mode | |
| But, despite these issues, performance was perfectly fine, as well as | |
| battery life. But usability should be priority for such a device, and | |
| it didn't work very well here. | |
| # Conclusion | |
| If you already enjoy your Steam Deck the way it is, I recommend you to | |
| stick to SteamOS. It does the job fine, allows you to install programs | |
| from Flatpak, and you can also root it if you really need to install | |
| system packages. | |
| If you want to do more on your Deck (use it as a server maybe? Who | |
| knows), you may find it interesting to get everything under your | |
| control. | |
| # Pro tip | |
| I'm using syncthing on my Steam Deck and other devices to synchronize | |
| GOG/Epic save games, Steam cloud is neat, but with one minute per game | |
| to configure syncthing, you have something similar. | |
| Nintendo Switch emulation works fine on Steam Deck, more about that | |
| soon :) | |
| Steam Deck displaying the Switch game Pokémon Arceus Legends |