Steam proton
Steam Proton wraps wine with the goal of running windows games on linux.
Documentation
proton db https://www.protondb.com/explore
Locations
~/.local/share/Steam
default ${STEAM_DOWNLOAD_DIR}
~/.local/share/Steam/steamapps/common/*
default game install dirs ${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)
Install
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.
Usage
# 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.
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
- Install supplementary tools into the same wine prefix, identified by protontricks (TODO)
- 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 overlayfs for mods, or for evaluating game versions
Debugging
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