Notes from building a Steam appliance on Silverblue

Hello everyone,

My silverblue desktop is a pretty awesome gaming machine, and I thought, hey, wouldn’t it be neat if I could have “SteamOS” silverblue appliance, with flatpaks and ostree that I can just connect to the TV like a console. Similar to ChimeraOS. I have done this before with Clear Linux but wanted to see if I could do it on Fedora.

At first I tried copying all the files from ChimeraOS and SteamOS, doing the usual business, then I realized that gamescope comes with Fedora, so I thought I’d give that a shot.

As I mangled all these old files I remembered this blog post about making RHEL lightweight kiosks. And then I looked and saw that gnome-kiosk-script-session is in Fedora already. This ended up being relatively straight forward and thought I would share.

  1. Install silverblue, dedicated machine is best.
  2. Install steam and whatever drivers you need. I have an AMD card so I didn’t have to do much, I installed steam via the flatpak. Do this before you move on because we’re making an appliance and it’ll be annoying to do this after. Also log into steam, install a game, make sure it’s all working. You want to do all the stuff that you need a keyboard for now.
  3. rpm-ostree install gnome-kiosk-script-session gamescope
  4. Reboot!

This will add a kiosk session to gdm, which lets us just launch a program in it’s own dedicated session. Select it by clicking on the gear on the bottom right of GDM and choose the wayland kiosk option. When you login you should see gedit open a file, which is the default demo. Ok at this point I just rebooted and then logged back into my normal GNOME session. Now let’s make it launch steam instead of gedit.

  1. I set updates to stage so updates can be transparent and in the background.
  2. Edit ~/.local/bin/gnome-kiosk-script

The file basically just launches gedit, we want to replace that command with this bit o’ magic:

#!/bin/sh
sleep 1.0
/usr/bin/gamescope -h 2160 -w 3840 -e -- flatpak run com.valvesoftware.Steam -tenfoot -steamos -fulldesktopres

Save, and make sure the numbers for the -h flags match the resolution of your television. Now reboot, and choose the gear again and choose the wayland kiosk session again. Congrats, that’s it! Thanks to gnome-kiosk and gamescope everything is running pretty smooth!

However it’s not perfect, for example my controller worked fine but the “Power down” option didn’t work in Steam. I suspect steam depends on something in the session in order for those buttons to work. (Anyone have a clue on what this might be?) Shout out to alkazar (creator of ChimeraOS) linked to how they fixed it:

However I wasn’t able to get this to work. :frowning:

I also just did this on a lab machine and stupidly started a reinstall to do it from scratch without testing sound, however a reinstall on a NUC had working sound ootb so I think that’s good. The kiosk blog post I linked to above has instructions on how to set the machine to auto-login into the kiosk session, but I won’t do that until I’ve played with it.

I use ChimeraOS as my day-to-day, this is not a replacement, it has way more features, etc. However the availability of these packages made it easy for me to try a dedicated steam session using gamescope on wayland, which is pretty neat!

Also, final install size is around … 10GB, which is what the reported size of SteamOS 3.0 is, which is also immutable and supports flatpaks. And yet it’s based on arch/KDE and this is fedora/GNOME. That’s a pretty interesting coincidence!

Also:

References

9 Likes