RSS

~neon/thoughts/2022/08/13/steam-deck-devification

Permalink

Running the SteamOS Devkit Service on a regular Steam Deck

I got a Q1 Steam Deck, mostly for testing my own games on it, and making them work well. Finally, a stable target for Linux gaming!

Much to my surprise, the regular Steam Deck does not seem to have all the devkit services set up right away: I set my Deck to Developer Mode, installed the SteamOS Devkit Client on my main computer (as per the official instructions), but my Deck is nowhere to be seen! Now, I may have just missed something — and I’d definitely like to know if there was an easier way to do this — but I ended up installing the needed service manually, and set it up like I would a ‘‘hackendeck’’ Manjaro system. Since I didn’t find any guides for doing this with the Steam Deck specifically, I decided to write my own.

Installing the service

First, open Desktop Mode (press the Steam button, select Power, then Switch to Desktop) and then Firefox. Open this blog (or the Steamworks article, I found it by googling “How to load and run games on Steam Deck”), and open the direct install link, and it’ll install it via Steam.

Configuring it

Now the SteamOS Devkit Service can be found in your Steam Library, but it probably doesn’t launch yet. This is because the setup script checks if you’re running Manjaro, which the Steam Deck is not, and stops there. Now, let’s set it up so that it works:

  1. Open Desktop Mode, then Konsole via the start menu. Press Steam + X to open the keyboard.
  2. Move to the service directory: cd .steam/root/steamapps/common/SteamOSDevkitService
  3. Open the configure script in KWrite: kwrite configure-hackendeck.py.
  4. Comment out line 20 (the sys.exit(1) in the if not hackendeck: block) by adding a # at the start of the line.
  5. Save the file and close KWrite.
  6. Run ./steam-devkit-tool. It should print “Only supported by Manjaro - please check documentation” but continue running after that.

Now the service should run as expected, you can launch the service from Gaming Mode, and see your Deck on your main PC. However, this is not ideal, as the game is running in the foreground, which means that it’ll often get cut off, and it isn’t very automatic.

Setting up a systemd user unit for autostart

  1. Open Konsole and run:
    kwrite /home/deck/.config/systemd/user/steam-devkit-service.service.
  2. Write or copy the following into the file (note: the ExecStart line does not have a line break, it’s just very long):
    [Unit]
    Description=Manually created SteamOS Devkit Service
    Wants=network.target
    After=network-online.target
    
    [Service]
    Restart=always
    WorkingDirectory=/home/deck/.steam/root/steamapps/common/SteamOSDevkitService
    ExecStart=/home/deck/.steam/root/steamapps/common/SteamOSDevkitService/steamos-devkit-service.py --hooks hooks
    
    [Install]
    WantedBy=default.target
    
  3. Save the file and close KWrite.
  4. Enable and start (the --now part) the service:
    systemctl --user enable --now steam-devkit-service

Now, pretty much whenever your Steam Deck is powered on, it should be accessible to other computers on the same network which are running the SteamOS Devkit Client. You can install it for your main computer with this direct install link in case you still need it.


If you have comments or questions, or especially if there’s an issue with the guide, feel free to contact me via my Fediverse inbox or my email.