SteamOS is a Linux distribution developed by Valve. SteamOS 3 is based on the Arch Linux distribution with KDE Plasma.
- SteamOS
- Description
- Directory
- References
- Initial Setup
- Fish Shell
- Add Flathub Repository
- ProtonUp-Qt
- CryoUtilities
- CryoUtilities Undo Sync Game Data
- EmuDeck
- Custom Game Emulation Configurations
- Custom Emulator Configurations
- Mounting Remote Directory
- Backing up with Vorta
- Add Web Apps to Steam
- Applying Translation Patches to ROMs
- Fixing DRM issues with Google Chrome
- Install Git LFS
- Better Fonts
- Convert XCI Switch Games to NSP
- Wake on LAN or Wireless
- Plasma Desktop Quality of Life Improvements
- Plasma Desktop Theme Customisations
- Distrobox Installation and Usage
- Install Applications/Libraries via Distrobox
- Make Flatpak Apps Respect KDE Theme
- Link's Awakening DX HD
- KDE Connect
- Ocarina of Time
- Majora's Mask
This details how to setup SteamOS on initial installation/boot.
From Gaming mode, update the hostname of the Steam Deck.
-
Open the Steam menu by clicking the STEAM button.
-
Click the Settings menu item.
-
Click the System tab.
-
Under the About section, click the button corresponding to the Hostname.
-
Add your desired hostname for the Steam Deck in the provided text field.
-
Click the Change & Restart button.
From Desktop mode, set up a sudo password for the deck user.
-
Launch the Konsole app.
-
Run the following command and follow the instructions to set a password for the
deckuser:passwd
From Desktop mode, this details how we can enable remote access into our system from other devices in the same network or externally.
From Desktop mode, install some essential Flatpak apps for the current user (or system):
- Firefox
- Plex
- Discord
- Spotify
- Google Chrome
- OBS Studio
- Vesktop
- KDiskMark
- WhatsApp Desktop
- LibreOffice
- Signal Desktop
From Desktop mode, this details on how to configure default applications of various types on KDE Plasma.
This details on how to make Fish the default shell for the user, setting an ideal configuration or profile for the Fish shell, and installing the Fisher plugin manager.
-
Since SteamOS is immutable, some of the dependencies required for the recommended configuration that were not preinstalled must either be installed manually (i.e. by downloading and installing their binary release from their source) or through Distrobox using an Arch Linux based container with
yayinstalled. -
Opting for
podmanoverdockeras the default container runtime is highly recommended for immutable systems due to its rootless nature. -
In your Fish
config.fishfile, you may comment the entire# Package managerblock since it does not apply for the SteamOS system.
SteamOS already comes with access to Flathub system-wide, follow this guide to add the Flathub repository specifically for the user.
This details the installation of ProtonUp-Qt and GE-Proton, as well as how to update GE-Proton for your installed games down the line.
This details the installation and the setup steps for CryoUtilities in order to optimise our Steam Deck's performance.
To save storage space, game data can be moved to the SD card, and symlinked to the Deck's SSD. This procedure is called "Sync Game Data". This may cause issues for some games however, and this guide will undo the process for a particular game after having done it using the CryoUtilities programme.
This details how to install, setup, and maintain EmuDeck on SteamOS.
This details on certain configuration options or fixes for several games of various emulation systems.
This details on certain configuration options for several emulators.
This details how to mount a remote Samba share to our local machine.
-
It's potentially recommended to use a path within our user directory as the mountpoint for the remote directory (i.e.
/home/deck/mynas) to avoid potential issues with the system's immutability. -
Configurations made to the system's
fstabfile will not persist through (major) updates - use thesystemdmount unit method instead to mount the remote storage. -
Changes made to the system's
hostsfile will not persist either - when referencing the remote storage server in your mount configuration, use its IP address instead of its hostname.
This details installing and setting up Vorta to have it backup our personal files, and restoring them when needed.
-
These are our source folders and files to backup specific to the Steam Deck:
~/.config ~/.local/share/Steam/steamapps/common/Stardew Valley ~/.local/share/Steam/steamapps/compatdata ~/.local/share/Steam/steamapps/userdata ~/.var/app/io.github.shiiion.primehack/data/dolphin-emu/GC ~/.var/app/io.github.shiiion.primehack/data/dolphin-emu/StateSaves ~/.var/app/io.github.shiiion.primehack/data/dolphin-emu/Wii ~/.var/app/org.citra_emu.citra/data/citra-emu/sdmc ~/.var/app/org.citra_emu.citra/data/citra-emu/states ~/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/GC ~/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/StateSaves ~/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/Wii ~/.var/app/org.libretro.RetroArch/config/retroarch/saves ~/.var/app/org.libretro.RetroArch/config/retroarch/states ~/.var/app/org.ppsspp.PPSSPP/config/ppsspp/PSP/PPSSPP_STATE ~/.var/app/org.ppsspp.PPSSPP/config/ppsspp/PSP/SAVEDATA ~/Applications ~/emudeck ~/ES-DE ~/homebrew ~/Pictures/Screenshots /run/media/mmcblk0p1/Emulation/roms/wiiu/mlc01/usr/save /run/media/mmcblk0p1/Emulation/saves/duckstation /run/media/mmcblk0p1/Emulation/saves/MAME /run/media/mmcblk0p1/Emulation/saves/pcsx2 /run/media/mmcblk0p1/Emulation/saves/ryujinx /run/media/mmcblk0p1/Emulation/saves/scummvm /run/media/mmcblk0p1/Emulation/storage/rpcs3/dev_hdd0/home/00000001/savedata /run/media/mmcblk0p1/Emulation/storage/yuzu/nand/user/save
This backs up some personal files and game-related files, including game saves and emulator configurations. Make necessary adjustments to the list based on your needs.
This details how to add web-based services to Steam so they can be accessed in gaming mode.
This details on how you can apply translation patches to your supported ROMs.
Note that this issue is a bug, and this guide is simply a workaround. It's likely that if the issue gets fixed, we can either ignore this workaround or revert it if it's already been implemented as it might disrupt or cause issues when attempting to update Google Chrome in the future.
Git LFS is needed to acquire files from git repositories that requires LFS. This details how we could set it up without root privileges.
This details several configuration options for our desktop to have and use better looking fonts. This also includes Emoji, Microsoft Fonts, and Apple Fonts support.
This details how we can convert .xci Nintendo Switch games to .nsp.
This details on how to enable, setup and use Wake on LAN (WoL) or Wake on Wireless (WoWLAN) on our system.
This details on some things that could be done to improve the experience of using the desktop mode.
This details some customisation options for the Plasma desktop.
Note
As of SteamOS version 3.5, Distrobox (and Podman) should already be pre-installed by default.
This details how we can install, setup, and use Distrobox.
This details how we can install certain applications or libraries not present in your system via Distrobox.
This solves the issue of (some) Flatpak apps not looking native in KDE, and defaulting to a GTK theme instead.
This details how to install and run the Link's Awakening DX HD port.
This details installing and setting up KDE Connect on your system as a means to share files and other data wirelessly between devices on the same network.
This details how to install and run the Ocarina of Time PC port, Ship of Harkinian.
This details how to install and run the Majora's Mask PC port, 2 Ship 2 Harkinian.