-
Notifications
You must be signed in to change notification settings - Fork 69
Home
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 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.
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
Please make sure you have followed instructions in https://github.com/flathub/com.valvesoftware.Steam/wiki/Using-beta-branch-of-this-app
See https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/wikis/mesa-git
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.
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
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.
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.
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
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.
Symlinks in home directory are not supported. See: https://github.com/flatpak/flatpak/issues/1658 for Flatpak issue.
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
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.
User overrides are stored in ~/.local/share/flatpak/overrides/
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
).
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/
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.
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.
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/.
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