Steam proton
Steam Proton is a fork of wine, that adds patches, DXVK primarily geared towards speed.
It is bundled with steam and is intended for running games on linux.
Documentation
proton db https://www.protondb.com/explore issue tracker https://github.com/ValveSoftware/Proton/issues
Locations
~/.local/share/Steam
default ${STEAM_DOWNLOAD_DIR}
~/.local/share/Steam/steamapps/common/*
default game install dirs ~/.local/share/Steam/logs/content_log.txt
logs proton game startup, executed command ${STEAM_DOWNLOAD_DIR}/steamapps/compatdata/${APPID}/pfx
wine prefix for game (game saves, settings, etc here) Z:\home\will\.local\share\Steam\steamapps\common\*
games mounted from linux filesystem on Z: drive
Tools
wine wine protontricks winetricks for proton wine prefixes protonhax load multiple wine apps in same wineprefix (ex: cheat engine alongside game) steamtinkerlaunch shellscripts to shoehorn reshades and various mod managers into steam on linux
Install
Proton (official)
Steam proton is a wrapper built around wine.
It enables you to play unported windows games on linux.FileMenu > Settings: - Account Tab: - Beta Participation: CHANGE - Beta participation: Steam Beta Update Restart Steam FileMenu > Settings: - Steam Play: - [x] Enable Steam Play for supported titles - [x] Enable Steam Play for All titles - Choose latest beta versionNow search the protondb for your game for additional hacks that may be necessary.
Proton-GE
An unofficial patched proton with extra features.
You can choose it as your proton-version within steam, and run it from the commandline withproton
.aura -A proton-ge-custom-bin
Usage
General
# use 'protontricks' to identify your game's ID protontricks -s 'Elite' # run regular wine commands within prefix WINEPREFIX=~/.steam/steam/steamapps/compatdata/${APPID}/pfx/ \ wineconsole cmdI've been experimenting with overlayfs and bootscripts for mods.
If installing a mod that requires patching files in-place, mount your game and run installer from cmd.exe.Launch Outside of Steam
Steam can rob you of some performance. If you launch games outside of it you might get a performance boost.
# specific version env WINEPREFIX=${STEAM_GAMEDIR}/steamapps/compatdata/${APPID}/pfx \ "$HOME/.local/share/Steam/steamapps/common/Proton X.YY/dist/bin/wine64" \ foo.exe # experimental env WINEPREFIX=${STEAM_GAMEDIR}/steamapps/compatdata/${APPID}/pfx \ "$HOME/.local/share/Steam/steamapps/common/Proton - Experimental/files/bin/wine64" \ foo.exe # you may also be able to use protontricks protontricks -l # list installed apps protontricks ${appid} -c cmdNon-Steam Games
You can also take advantage of proton's wine patches for non-steam games.
You could probably also install proton independently of steam, using their github repo.- install steam - install a game using proton (to install a proton dist)
WARNING:
this isn't quite right, proton's wine is installed to
steamapps/common/Proton X.X/dist/bin/wine64
mkdir -p ~/steamless-proton/yourgame cp ~/.local/share/Steam/steamapps/compatdata/${APPID}/pfx ~/steamless-proton/yourgame env WINEPREFIX=~/steamless-proton/yourgame ~/steamless-proton/yourgame/pfx/Proton\ X.X.X/dist/bin/wine64 ./game-installer.exe
Performance Tuning
Controllers
DirectInput API
You may need to disable the wine controller driver for the game to work.
NOTE:
did not work for me, but both the stock
xpad
andxpadneo
drivers both worked fine.WINEPREFIX=~/.steam/steam/steamapps/compatdata/335300/pfx/ \ wine controlGame Controllers: Connected: - (choose your controller, and disable)Input should now come from linux, rather than be re-interpreted in wine.
Microsoft Xinput
should be fine once controller-type selected/enabled in steam settings.
Triple-Monitor Gaming
1. [nvidia] 3x monitors as 1x screen, restart Xorg
DisablenvidiaXineramaInfo
inxorg.conf
,
and restart your Display Manager (to restart Xorg with new options).# /etc/X11/xorg.conf Section "Screen" Option "nvidiaXineramaInfo" "Off" EndSectionsudo systemctl restart lxdm.service
2. Share monitor resolution on all screens
# something like this xrandr \ --output DP-2 --left-of HDMI-1 --mode 1920x1080 \ --output HDMI-1 --mode 1920x1080 \ --output USB-C-0 --right-of HDMI-1 --mode 1920x1080
3. Configure game
The configuration will likely be different from windows, even when native.
You may need an ini tweak, it may magically work, etc.Here are some games I have been able to make work with 3x monitors.
The easiest workflow is to symlink the used
xorg.conf
, and have 2x configurations available.
Restart your Display Manager to restart Xorg and re-login to your new configuration.
Mods
TODO:
extract much of this doc into a linux-gaming page.
A lot of this is not proton specific.
- Install supplementary tools into the same wine prefix, identified by protontricks
- Game executable versions can be obtained with pev
peres -v game.exe | grep 'File Version'
- Use the steam ui#Disable Updates tricks to lock updates until you are ready
- Consider using ext4s casefold option for case-insensitive directories
- Consider using overlayfs for mods, or for evaluating game versions
- If installing reshade, consider https://github.com/kevinlekiller/reshade-steam-proton
Debugging
Enable Logging
rclick game: - properties: - general: - LAUNCH OPTIONS: PROTON_LOG=1 %command%Logs will be written to
~/steam-*.log
cd ~/.local/share/Steam/steamapps/common/Proton X.XX cp user_settings.sample.py user_settings.py # run game # see crash log in ~/steam-XXXXXX.log