Skip to content
Ash edited this page Jun 14, 2024 · 35 revisions

Terms

Native: a native game is a game that runs on Linux without any compatibility libraries like Proton. This generally means the game developer specifically built a version of the game for Linux systems and is usually the "best" form of the game.

Proton: Proton is a compatibility layer, made by Valve, for Steam on Linux that emulates a Windows environment using tools like Wine. Proton allows Windows-exclusive games to run on Linux systems. You can force native games to use Proton instead, but generally native is better if available.

What games can I play?

Steam Deck verified games are verified by Valve to work on the Steam Deck (Linux-based) and should work on desktop Linux distributions.

ProtonDB is a great resource for finding community information about specific games and their playability.

To filter your own library (by Steam Deck Verification), go to your Steam Library tab and click the penguin (Tux) to show games that run on Linux. Alternatively, click the advanced filtering options button, expand the drop-down under Hardware Support, and choose a level of verification to filter by.

How do I use Steam Play / Proton?

Proton/Steam Play isn't always necessary, if the game installs and runs without Proton, it is native and likely works the best without Proton.

Enable Proton Globally

Steam > Settings > Steam Play

Enabling Steam Play will automatically download Proton compatibility libraries for non-native games. If left disabled, only Native games can be installed and played.

'Enable Steam Play for supported titles' enables compatibility tools for games verified by Valve to work well on Linux.

'Enable Steam Play for all other titles' enables compatibility tools for all non-native games in your library. Unsupported titles greatly vary in functionality, check ProtonDB for more info on specific games.

Enable Proton Individually

Right click the game > Properties > Compatibility > Check 'Force the use of...' > Choose a Proton version

How do I know if the game is a Native or Proton game?

ProtonDB will show 'Native' if the game is a native game, otherwise it is a Proton game.

Additionally, disabling Steam Play entirely will then only then allow you to install/play native games.

How do I use a custom Proton version?

Proton GE instructions for reference.

  1. Run Steam at least once
  2. Create the compatibilitytools.d directory
mkdir -p ~/snap/steam/common/.steam/root/compatibilitytools.d
  1. Extract custom Proton versions to the above directory
  1. Run Steam, and you should be able to select your custom version from the Proton version dropdown like normal

How do I use my dedicated GPU?

NVIDIA

32-bit Driver

It is recommended to install the 32-bit NVIDIA drivers alongside your usual 64-bit NVIDIA drivers for the best experience.

To install on Ubuntu, run:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libnvidia-gl-<YOUR_DRIVER_VERSION>:i386

Replace <YOUR_DRIVER_VERSION> with your NVIDIA driver version. This can be found in nvidia-smi or something like glxinfo -B.

Enabling a graphics card

Switch between graphics modes with sudo prime-select <mode> and reboot. For games to use your graphics card, prime-select should be set to nvidia or on-demand. Show your current graphics mode with sudo prime-select query. Note: exclusively using a discrete graphics card (nvidia option) will use more power than normal.

GPU stats

To view programs using your GPU as well as power usage and other information, run nvidia-smi. If a game is correctly using your GPU, a listing should appear in nvidia-smi after it has started running.

Launch Arguments

If a game is not using your NVIDIA GPU by default, then it may be worth trying to pass NVIDIA's environment variables in as launch options for the game. For example:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%

What GPU do I have?

Usually you can find what kind of GPUs your computer has by running

lspci | grep VGA

For example,

00:02.0 VGA compatible controller: Intel Corporation CoffeeLake-H GT2 [UHD Graphics 630] (rev 02)
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)

means I have an integrated Intel graphics card (UHD Graphics 630) that is included with my CPU, as well as a discrete/dedicated NVIDIA graphics card (GTX 1650).

How do I use controllers?

In Steam, enter Big Picture Mode (next to the close and minimize buttons on the top right of the client), then go to Settings > Controller. You should be able to enable configurations for your controller type and see your controller appear in the list. If not, make sure the following plugs are connected (these will likely already be connected automatically):

  • joystick: snap connect steam:joystick
  • hardware-observe: snap connect steam:hardware-observe
  • uinput: snap connect steam:uinput

You may also (but usually shouldn't) need to install the steam-devices deb package on your host system, e.g. sudo apt install --no-install-recommends steam-devices.

How do I use a different mesa/graphics version?

The Snap relies on the gaming-graphics-core22 Snap for graphics packages (see snap connections steam). You may switch gaming-graphics-core22 to a different channel to use different versions of mesa and other graphics libraries.

Currently, the channels are oibaf-latest (bleeding edge), kisak-fresh (new, but stable), and kisak-turtle (most stable). Switch between them with the following:

snap refresh gaming-graphics-core22 --channel <channel>

How do I use MangoHUD?

MangoHUD support is still spotty, and works best with native OpenGL games; please do not open issues relating solely to MangoHUD compatibility.

Add mangohud %command% to your game launch options.

Environment Variables

You may add configuration options to your launch options by specifying the MANGOHUD_CONFIG environment variable in your launch options. For example, MANGOHUD_CONFIG=time mangohud %command%.

Configuration Files

  1. Run snap run --shell steam
  2. Make the MangoHUD config directory: mkdir -p ~/.config/MangoHud
  3. Copy the default config file: cp $SNAP/usr/share/doc/mangohud/MangoHud.conf.example ~/.config/MangoHud/MangoHud.conf
  4. Edit ~/.config/MangoHud/MangoHud.conf to your liking
  5. Run MangoHUD like usual

How do I update Steam/snapd?

Steam will update itself like it normally does. If the Steam Snap is updated, the Snap will be updated automatically. However, you can force an update immediately by running snap refresh steam.

What version am I using?

Steam Snap Revision

snap info steam

Your revision is the number at the end by installed: in parenthesis. For example, installed: 1.0.0.74 (39) 371MB - means 39 is my revision.

snapd Revision

snap info snapd

Your revision is the number at the end by installed: in parenthesis.