For specific help on correct in-game settings/proton versions to play games, check out the Proton Help page.
Installing Steam
Use the Software Center and Install Native Steam, NOT Flatpak Steam.
Flatpak Steam is okay if you never plan to mod, but as soon as you want to do any modding, it complicates things. But there really isn’t any downside to installing Native Steam.
Setting Up External Storage
In KDE:
- First open in a terminal to create a new folder that the storage device will be accessible from:
sudo mkdir /media/*EXT_STORAGE_DEVICE_NAME*- Provide your password for the sudo command and close when done. Keep that folder path location handy.
- Open KDE Partition Manager
- Find the disk+partition you use for storing games
- If you are using a fresh drive, then create a new “ext4” partition first.
- Right Click it and select “Edit mount point“
- Select “UUID” for the option “Identify by” at the top
- In “Path“, paste the mount point you created in the terminal in step #1.
- Press Okay, then make sure to click Apply at the top to actually make the change!
After applying, you can reboot, and you should find your drive automatically located in /media/ where you mounted it. Now you can use this as an install location in Steam.
How do I play games not from Steam?
A lot of game launchers have alternatives on Linux, or a single third party launcher for multiple, like Heroic, which lets you play Epic and GOG games. Or Bottles, which lets you install the official Ubisoft, EA, etc. launchers. But the easiest way to play simple .exe games you might have is to add them to Steam as non-Steam games. Doing that and enabling Proton compatibility is all it takes to run most executables with Valve’s translation layer magic.
- From the Library page in Steam, select “+ Add a Game” at the bottom left and “Add a non-Steam Game…“
- Then find your game from the list, or click “Browse…” to locate the .exe directly.
- After it’s been added, it will have the filename of the .exe, so search it in the search bar at the top of your games list.
- Right Click the game and select “Properties…“
- Here you can change the name of the game to its actual name, and also the icon. You can also go to the “Customization” tab to add more art so Non-Steam games fit into your library better. Game art can be quickly found at SteamGridDB.
- The last important thing to do however is to select the “Compatibility” tab, and check the box to force it to use proton. Just start with Proton-Experimental, it works for most games.
Now you can launch the game and it should work, but if you have issues, you may need to search for a better Proton version. I have all the games I’ve set custom Proton versions for, along with any other settings needed to run on Linux, over on Proton Help. If it’s not there, you can try a few you think it may work on based on other games from the same engine/rendering API/era, etc., like older games tend to work on older Proton versions, but your best bet is to just Google it or go to ProtonDB.
How do I use mods made for Windows games?
This is easier than it would first seem, and works for Non-Steam games, as long as you add them to Steam manually.
Fast Version:
- Install protontricks from the terminal
- Download the .exe of the modloader/installer and double click it to run it.
- If you need to, select Protontricks to run it with
- Select “Native Steam” if Protontricks asks
- Select the game you are modding
- Now the mod loader/installer should launch as normal
- There may be a few dialogs that pop up that look like errors, but click okay through them and it should still work
Long Version
We download an app called Protontricks. There is a flatpak version in the Software Center, but flatpaks are sandboxed, and modding requires access to your game files, so I would use the command line to install it:
Fedora
sudo dnf install protontricks
Debian/Ubuntu/Mint
sudo apt install protontricks
After downloading this, Windows .exe files will automatically associate with it, so now you can download a Windows modloader and double click it to run it as normal, it should open Protontricks, if not, select it from the list of programs to launch the .exe.
When Protontricks opens, it will ask you if you are using1 Native or Flatpak Steam. Since you are modding, you should have Native Steam, so select that one.
Now it will ask you to select which game you are trying to mod, go ahead and find your game and click that one.
From there, the modloader should start to run normally as if you launched it in Windows, although it may take longer to open, especially on the first time running it.
1To make Protontricks stop asking which version of steam to use
- Navigate to the folder
/usr/share/applications - Find
protontricks-launch.desktop- If you can’t find it, search for it in Dolphin (file explorer)
- Right Click it > Properties > “Application” Tab
- Set “Environment variables” to:
STEAM_DIR=/home/*USER*/.local/share/Steam- Change the bold part to your username. The exact path will be visible when you try to launch Protontricks, make sure it matches exactly.
Now when you launch .exe files, they should skip straight to selecting the game.
Game launches using wrong GPU?
Note: This only works on games running through Proton (the translation layer that most games run through).
We can manually tell it which GPU to use via Environment Variables in Steam Launch Options.
Check the GPU name by running this in a terminal:
vulkaninfo --summary 2>/dev/null | grep deviceName
deviceName = AMD Radeon RX 7700 XT (RADV NAVI32)
deviceName = AMD Ryzen 5 7600X 6-Core Processor (RADV RAPHAEL_MENDOCINO)
## if you have an NVidia GPU it may look like:
deviceName = NVidia RTX 3080
deviceName = AMD Ryzen 5 7600X 6-Core Processor (RADV RAPHAEL_MENDOCINO)
Now we basically just take a unique substring from the deviceName of the desired GPU. So for the AMD dGPU above: “7700” is enough. For the NVidia one, “3080” is fine. Anything unique in the bolded sections above will work.
Then we add a Steam Launch Parameter like this:
- Right click the Game in your Steam Library and click “Properties“.
- Set this as the Launch Options using the unique substring from before:
Examples:
DXVK_FILTER_DEVICE_NAME=7700 %command%DXVK_FILTER_DEVICE_NAME=3080 %command%
If you already have launch options, check if %command% is there, if so, then just replace %command% with the correct line above. If it’s not present, then paste the command above BEFORE your current Launch Options. Example:
ORIG_ENV_VAR DXVK_FILTER_DEVICE_NAME=3080 %command% --original-launch-options
Environment Variables go BEFORE the executable (
%command%), and launch options go AFTER. When%command%is not provided, it just assumes they are launch args and runs them after the the executable, so%command%is only needed when using env vars.