Skip to content

rursache/proton-run

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

proton-run

proton-run

Run Windows executables with Steam Proton outside of Steam

AUR version GitHub release License


Features

  • Auto-detects Proton — finds the best available Proton version from your Steam installation
  • Desktop integration — right-click any .exe and open it with Proton Run
  • YAML configuration — customize Proton version, DLL overrides, prefix paths, and more
  • Per-game prefixes — isolate Wine prefixes per game using Steam App ID detection (steam_appid.txt, OnlineFix.ini, steamclient64.ini/steamclient.ini)
  • Config migration — new config options are automatically added on updates without overwriting your changes
  • MangoHud support — toggle the FPS/stats overlay from the config
  • Proton version override — select a specific Proton version per run via CLI
  • Available Proton listing — shows installed Proton versions when a match isn't found

Installation

AUR (Arch Linux)

yay -S proton-run

Manual

git clone https://github.com/rursache/proton-run.git
cd proton-run
sudo make install

Dependencies

  • bash
  • steam (provides Proton)
  • yq (YAML parser)

Usage

# Run a Windows executable
proton-run game.exe

# Force a specific Steam App ID (uses Steam's compatdata prefix)
proton-run --steam-id 4069520 game.exe

# Override Proton version for this run
proton-run --proton "GE-Proton*" game.exe

# Enable per-game prefix for this run
proton-run --per-game-prefix game.exe

# Open the configuration file
proton-run --config

# Show help
proton-run --help

You can also right-click any .exe file in your file manager and select Open With > Proton Run.

Configuration

The configuration file is created automatically on first run at:

~/.config/proton-run.yaml

Edit it directly or use proton-run --config to open it in your default editor.

Options

Option Default Description
proton_version auto Proton version to use. Set to auto for auto-detection or an absolute path to a specific Proton
proton_preferences (see below) Search order for auto-detection (first match wins)
proton_search_dirs ~/.steam, ~/.local/share/Steam Directories to scan for Proton installations
mangohud false Enable MangoHud overlay (FPS, CPU/GPU stats)
protonhax false Enable protonhax for running additional programs inside the Proton prefix (falls back to classic launch if not installed)
per_game_prefix false Use per-game Wine prefixes based on detected Steam App ID
wine_prefix ~/.proton_pfx Shared Wine prefix path (fallback when per-game is off or no ID is found)
steam_compat_client_install_path ~/.local/share/Steam Steam install path
dll_overrides (see below) Wine DLL overrides (=n,b is added automatically)

Default Proton search order

proton_preferences:
  - "Proton - Experimental"
  - "Proton Hotfix"
  - "Proton 9*"
  - "GE-Proton*"
  - "Proton-GE*"
  - "Proton-EM*"
  - "Proton 8*"
  - "Proton*"

Default DLL overrides

dll_overrides:
  - "steam_api"
  - "steam_api64"
  - "OnlineFix"
  - "OnlineFix64"
  - "SteamOverlay"
  - "SteamOverlay64"
  - "Custom"
  - "steamclient"
  - "steamclient64"
  - "winmm"
  - "version"
  - "GameAssembly"

Per-game prefixes

When per_game_prefix is enabled, proton-run scans the game's directory for:

  1. steam_appid.txt — a file containing the Steam App ID
  2. OnlineFix.ini — extracts the ID from RealAppId=<id>
  3. steamclient64.ini / steamclient.ini — extracts the ID from AppId=<id>

The detected ID is used to create an isolated prefix at ~/.local/share/Steam/steamapps/compatdata/<id>/, matching Steam's own behavior.

You can also force an ID with --steam-id <id> regardless of the config setting.

License

MIT

About

The fastest way to run Windows Games and Apps via Steam's Proton

Topics

Resources

License

Stars

Watchers

Forks

Contributors