Skip to content
James Armstrong edited this page Mar 14, 2024 · 46 revisions

Table of Contents

App starts slower than native

You can run `flatpak override --user --system-talk-name=org.freedesktop.NetworkManager com.valvesoftware.Steam` to allow app access to NetworkManager. Note that it means Steam has access to your WiFi and potential VPN secrets. Latter means any privacy VPN can be permanently broken.

Steam Play games do not start for me

Steam Play uses the Proton compatibility tool to run Windows games on Linux. Current Proton versions (as well as the latest Steam Linux Runtime) use a runtime container called pressure-vessel, which requires a fairly new version of Flatpak and a kernel that allows unprivileged user namespaces. If your system lacks either of those things, you have a few options:

  • Upgrade Flatpak to version 1.11.1 or newer, and make sure your OS allows unprivileged user namespaces. (Some linux distributions disable them by default because they are a security risk. If running ls -l /usr/bin/bwrap in your terminal shows permissions flags starting with -rws instead of -rwx, then Bubblewrap was installed in setuid mode, and unprivileged user namespaces are most likely disabled.) More detail here.
  • Configure Steam to use a version of Proton older than 5.13, such as 5.0-10. The setting for an individual game is in the game's properties: Compatibility: Force the use of a specific Steam Play compatibility tool. The global setting is in the Steam menu: Settings: Steam Play: Advanced: Run other titles with:
  • Install a Flathub community build of Proton: Proton, Proton-Exp, Proton-GE, and configure Steam to use it. These flatpaks have been built without pressure-vessel, so they should work on systems that do not meet the above requirements. They are neither from nor supported by Valve.

Black screen in Steam Store

There may be an incompatibility issue between runtime libraries and Steam. Please make sure Steam is updated through instructions from https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/merge_requests/6813

Missing libc.so.6 with beta branch

Please make sure you have followed instructions in https://github.com/flathub/com.valvesoftware.Steam/wiki/Using-beta-branch-of-this-app

Newer Mesa is required for running my game

See https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/wikis/mesa-git

My game is giving strange errors about missing symbols in libraries

The game (or in some rare cases Steam Runtime itself) is most likely bundling libraries that are incompatible with org.freedesktop.Platform. You might have noticed from Steam community in some cases LD_PRELOAD is being used to workaround cases like this. Don't worry, we have a scaling solution!

We have an automatically activated tool called shared-library-guard which can block bad libraries from ever being loaded. If you already (from some community post) know which library is needed, your task is easy. You just need to create a new file like https://github.com/flathub/com.valvesoftware.Steam/blob/beta/resources/blocklist/civilizationV.yml with some path fragments to match the game executable and the bad library. Don't be shy to create a pull request even if you don't know if the end result works. Flathub test build system will remotely create you a test build from pull request that you can test whether your approach was correct. If you start this app from terminal through flatpak run com.valvesoftware.Steam, you should on a success see a comment that the library was blocked and the game will start.

If you don't know what the problem is, please create an issue. First step is we need to figure out what the executable name is. You can basically just do SHARED_LIBRARY_GUARD_DEBUG="*(/*|/.*)/*" flatpak run com.valvesoftware.Steam > output.log 2>&1, launch the game and attach the output to an issue after closing the app. We'll help you creating a working pull request with blocklist entries for the game.

glXChooseVisual failed, segfaults etc with nVidia

If you're using nVidia, this may mean Flatpak is running userspace drivers that are incompatible with your host installation. The first thing to try is to do flatpak update in terminal. If there is no corresponding flatpak extension for your drivers, request one at https://github.com/flathub/org.freedesktop.Platform.GL.nvidia/issues

The application is using a lot of disk space

This application installs Steam including its runtime under a sandbox in ~/.var/app/com.valvesoftware.Steam. It looks to software running inside the application like regular user home. This directory will also contain all installed games, configurations and saves.

The easiest way to free up space is to uninstall games you don't use within Steam. Removing contents directly is possible but any lost data will be unrecoverable so don't touch it unless you're ready to risk your data and have read online how Steam stores data on Linux. Most of it should be relevant.

lib.so.6 cannot be found

This is caused by Steam app having been installed by something that doesn't correctly follow dependencies and install runtime extensions. If you installed through command-line, update Flatpak and run flatpak update to fix the issue. If you were using some GUI, report a bug against that GUI.

I got my Flatpak application into a bad shape and want to start from scratch

To reset steam for a clean install and settings try:

    flatpak run com.valvesoftware.Steam --reset

If you're using beta app, also see Using beta branch of this app

My controller isn't being detected

Most controllers require udev rules installed on the host to be usable. The Flatpak application doesn't have permissions to install udev rules in appropriate locations and udev rules shipped by Steam may also be insufficient without distribution customizations. See discussion in https://github.com/flathub/com.valvesoftware.Steam/issues/8 on locating good udev rules for your system.

Controller emulation / remapping ("Controller Configuration" in the big picture menu) can block a games access to real controllers in favour of a virtual "Microsoft X-Box 360 pad". The virtual controller only works when the game window is focused. The creation of the virtual controller can fail, with the error Couldn't initialize virtual gamepad: Couldn't open /dev/uinput for writing printed in the terminal. This can be fixed by giving your user write access to /dev/uinput.

You can try to install steam-devices package in your distribution to add the rules. In Ubuntu and openSUSE it's already available in official repos and in Fedora you can use steam-devices from RPM Fusion Nonfree. The steam-devices package is not required if you already installed steam from RPM Fusion Nonfree as the steam package already adds the rules.

bwrap: Can't make symlink at $HOME/...

Symlinks in home directory are not supported. See: https://github.com/flatpak/flatpak/issues/1658 for Flatpak issue.

Steam shows times with incorrect timezone

There's a fairly brute algorithm in place to try to guess correct variable to set to TZ. The application ignores TZ environment variable since the rules for TZ are reasonably complex. If your timezone is wrong and you want to override it, you can use this (Remember that zoneinfo must be a valid item under /usr/share/zoneinfo within the Flatpak application. You can find out what they are by entering flatpak through flatpak run --command=bash com.valvesoftware.Steam and looking into what /usr/share/zoneinfo has):

    flatpak --user override --env=TZ=zoneinfo com.valvesoftware.Steam

Numbers don't look properly localized in Steam

There's a hardcoded LC_NUMERIC=C. See https://github.com/flathub/com.valvesoftware.Steam/issues/62 If you find out the crashes no longer happen with described locales, comment on the case and the workaround might get removed given sufficient testing.

I messed up Steam app with overrides and now it won't start

User overrides are stored in ~/.local/share/flatpak/overrides/

Steam shows wrong free disk space on non-default libraries

This is a Steam https://github.com/ValveSoftware/steam-for-linux/issues/3881. It can happen if you give access to the library by pointing to the steamapps folder directly, e.g. --filesystem=/mnt/external_drive/games/steamapps. In this case Steam will try to read the free disk space from /mnt/external_drive/games, which is outside the sandbox, and will show the free disk space of the root tmpfs instead.

This can be fixed by allowing Steam access to the folder containing steamapps (in this case by --filesystem=/mnt/external_drive/games), or by moving the Steam library into a separate folder (e.g. /mnt/external_drive/games/steam_games/steamapps, with the override being --filesystem=/mnt/external_drive/games/steam_games).

I want to add external disk for Steam libraries

Using Flatseal

You can use Flatseal to change filesystem permissions to allow Steam to see your drive. (https://flathub.org/apps/com.github.tchx84.Flatseal). Add your drive by going to Flatseal -> Steam -> "Filesystem" section -> Other files -> Enter /path/to/mountpoint/

Using the terminal

Alternatively, you can do it on the terminal. Do this by mounting the disk outside your home, then using:

    flatpak override --user --filesystem=/path/to/mountpoint com.valvesoftware.Steam

to expose the disk to Flatpak. Then directly in Steam add the other location as library. (https://support.steampowered.com/kb_article.php?ref=7418-YUBN-8129) Exposing real user home to this application is not safe and the application tries hard not to run in that scenario to avoid breaking your home directory.

Notes

Note that if you hit this FAQ section due to an error message and were previously using real home with the app, you may need to fix some directories manually. The application cannot fix anything, it was never supposed to have access to your real home directory to begin with:

$HOME/.config vs $HOME/.var/app/com.valvesoftware.Steam/.config

$HOME/.local/share/ vs $HOME/.var/app/com.valvesoftware.Steam/.local/share

$HOME/.cache vs $HOME/.var/app/com.valvesoftware.Steam/.cache

The third one should contain only non-persistent data, the second one contains all your games in addition to potentially save game data. The first one may contain save game data. If games were writing to non-standard directories outside XDG directories, no general advice for relocating data can be provided.

Some filesystems are mounted with the noexec option as default, so Steam does not let you use them. You can override this, by adding exec to the mount options.

System Tray icons for Steam are missing

Try: ln -s ~/.var/app/com.valvesoftware.Steam/.local/share/Steam ~/.local/share/Steam. Possible explanation: systray is looking for the icons in ~/.local/share/Steam (same as in "bare-metal" version); but flatpaks are installed under .var/app/.

My issue is not related with anything listed here

Also search for https://help.steampowered.com/ for tips. Do make sure to primarily file issues to https://github.com/flathub/com.valvesoftware.Steam/issues