protontricks
A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
Top Related Projects
Compatibility tool for Steam Play based on Wine and additional components
Compatibility tool for Steam Play based on Wine and additional components
A games launcher for GOG, Amazon and Epic Games for Linux, Windows and macOS.
Lutris desktop client
All your games in one place
Quick Overview
Protontricks is a wrapper script for running Winetricks commands for Proton-enabled games on Steam. It allows users to easily apply Windows compatibility tweaks and install additional software for Steam Play games running through Proton, enhancing compatibility and performance.
Pros
- Simplifies the process of applying Winetricks commands to Proton-enabled games
- Improves compatibility and performance for many Steam Play games
- Integrates well with the Steam ecosystem
- Actively maintained and regularly updated
Cons
- Limited to Steam games; doesn't work with non-Steam games using Proton
- Requires some knowledge of Winetricks and Windows compatibility layers
- May cause issues if used incorrectly or with incompatible tweaks
- Depends on external tools (Winetricks, Steam) for full functionality
Getting Started
To get started with Protontricks, follow these steps:
-
Install Protontricks using your distribution's package manager or pip:
sudo pip install protontricks
-
Run Protontricks to see a list of available Steam games:
protontricks
-
Apply a Winetricks command to a specific game (replace APPID with the game's Steam AppID):
protontricks APPID <winetricks command>
For example, to install the Visual C++ 2015 runtime for a game with AppID 570:
protontricks 570 vcrun2015
For more detailed instructions and advanced usage, refer to the project's GitHub repository.
Competitor Comparisons
Compatibility tool for Steam Play based on Wine and additional components
Pros of Proton
- Official Valve project with direct integration into Steam
- Broader compatibility with a wide range of Windows games
- Regular updates and support from Valve developers
Cons of Proton
- Less granular control over individual game configurations
- May not work well with non-Steam games without additional setup
- Larger resource footprint due to its comprehensive nature
Code Comparison
Proton (C++):
int main(int argc, char *argv[])
{
ProtonProcess process;
process.Init(argc, argv);
return process.Run();
}
Protontricks (Python):
def main():
args = parse_arguments()
steam = Steam()
config = Config()
run_command(args, steam, config)
Summary
Proton is Valve's official compatibility layer for running Windows games on Linux, offering broad compatibility and regular updates. Protontricks, on the other hand, is a utility that provides more granular control over Proton prefixes, allowing users to apply specific tweaks and configurations to individual games. While Proton is more comprehensive and integrated with Steam, Protontricks offers flexibility for advanced users who need to fine-tune their gaming experience.
Compatibility tool for Steam Play based on Wine and additional components
Pros of proton-ge-custom
- Provides custom Proton builds with additional patches and features
- Regularly updated with the latest Wine and Proton improvements
- Includes fixes for specific games not yet available in official Proton
Cons of proton-ge-custom
- Requires manual installation and updates
- May introduce compatibility issues not present in official Proton
- Less stable than official Proton releases due to bleeding-edge changes
Code comparison
While a direct code comparison isn't particularly relevant due to the different nature of these projects, we can look at how they are used:
protontricks:
protontricks 570 winetricks vcrun2015
proton-ge-custom:
STEAM_COMPAT_DATA_PATH=~/.steam/steam/steamapps/compatdata/570 ~/.steam/root/compatibilitytools.d/Proton-6.21-GE-2/proton run game.exe
Summary
protontricks is a utility for applying Winetricks verbs to Proton prefixes, while proton-ge-custom is a custom Proton build with additional patches and features. protontricks is easier to use for specific tweaks, while proton-ge-custom offers broader improvements but requires more manual intervention. Both projects aim to enhance gaming on Linux through Steam Play, but they approach this goal from different angles.
A games launcher for GOG, Amazon and Epic Games for Linux, Windows and macOS.
Pros of HeroicGamesLauncher
- Provides a full-featured graphical interface for managing and launching games
- Supports multiple game stores (Epic Games, GOG, Amazon Games)
- Offers built-in Wine and Proton management for running Windows games on Linux
Cons of HeroicGamesLauncher
- Larger and more complex codebase, potentially harder to maintain
- May have higher system requirements due to its graphical interface
- Focuses on game management rather than specific Wine/Proton tweaks
Code Comparison
HeroicGamesLauncher (TypeScript):
export async function launchGame(appName: string): Promise<void> {
const gameInfo = await getGameInfo(appName);
const launchOptions = getLaunchOptions(gameInfo);
await runGameExecutable(launchOptions);
}
Protontricks (Python):
def run_command(command, env=None, cwd=None):
process = subprocess.Popen(
command, env=env, cwd=cwd,
stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
stdout, stderr = process.communicate()
return process.returncode, stdout, stderr
The code snippets highlight the different approaches: HeroicGamesLauncher focuses on high-level game management, while Protontricks provides lower-level command execution for Wine/Proton tweaks.
Lutris desktop client
Pros of Lutris
- Broader scope: Manages games from various sources, not just Steam/Proton
- User-friendly GUI for easy game installation and management
- Large community-maintained library of installation scripts
Cons of Lutris
- More complex setup and configuration process
- Heavier resource usage due to its comprehensive features
- Potential for conflicts with other gaming platforms or launchers
Code Comparison
Protontricks (Python):
def run_command(command, env=None, capture_output=False):
if capture_output:
return subprocess.run(command, env=env, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
else:
return subprocess.run(command, env=env, check=True)
Lutris (Python):
def execute(command, env=None, cwd=None, log_errors=False, quiet=False, shell=False):
"""Execute a system command and return its results."""
stdout, stderr = subprocess.Popen(
command,
shell=shell,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
env=env,
cwd=cwd,
).communicate()
return stdout.decode().strip()
Both projects use Python and employ similar approaches for executing system commands, but Lutris' implementation offers more flexibility with additional parameters and error handling.
All your games in one place
Pros of GameHub
- Provides a unified interface for managing games from multiple platforms (Steam, GOG, Humble Bundle, etc.)
- Offers a user-friendly GUI for installing and launching games
- Includes built-in support for various compatibility layers (Proton, Wine, DOSBox)
Cons of GameHub
- Limited to game management and doesn't offer advanced tweaking options for individual games
- May have less granular control over Proton versions compared to Protontricks
- Potentially larger resource footprint due to its comprehensive GUI
Code Comparison
GameHub (Vala):
public class Game : Object, Json.Serializable
{
public string id { get; set; }
public string name { get; set; }
public string? icon { get; set; }
public string? image { get; set; }
}
Protontricks (Python):
def get_steam_lib_paths():
steam_root = os.path.expanduser("~/.steam/root")
library_folders_path = os.path.join(
steam_root, "steamapps", "libraryfolders.vdf")
return find_steam_library_in_acf(library_folders_path)
The code snippets highlight the different approaches: GameHub uses Vala for object-oriented game representation, while Protontricks uses Python for file system operations and Steam library management.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Protontricks
Run Winetricks commands for Steam Play/Proton games among other common Wine features, such as launching external Windows executables.
This is a fork of the original project created by sirmentio. The original repository is available at Sirmentio/protontricks.
What is it?
This is a wrapper script that allows you to easily run Winetricks commands for Steam Play/Proton games among other common Wine features, such as launching external Windows executables. This is often useful when a game requires closed-source runtime libraries or applications that are not included with Proton.
Requirements
- Python 3.7 or newer
- Winetricks
- Steam
- YAD (recommended) or Zenity. Required for GUI.
Usage
Protontricks can be launched from desktop or using the protontricks
command.
Command-line
The basic command-line usage is as follows:
# Find your game's App ID by searching for it
protontricks -s <GAME NAME>
# or by listing all games
protontricks -l
# Run winetricks for the game.
# Any parameters in <ACTIONS> are passed directly to Winetricks.
# Parameters specific to Protontricks need to be placed *before* <APPID>.
protontricks <APPID> <ACTIONS>
# Run a custom command for selected game
protontricks -c <COMMAND> <APPID>
# Run the Protontricks GUI
protontricks --gui
# Launch a Windows executable using Protontricks
protontricks-launch <EXE>
# Launch a Windows executable for a specific Steam app using Protontricks
protontricks-launch --appid <APPID> <EXE>
# Print the Protontricks help message
protontricks --help
Since this is a wrapper, all commands that work for Winetricks will likely work for Protontricks as well.
If you have a different Steam directory, you can export $STEAM_DIR
to the directory where Steam is.
If you'd like to use a local version of Winetricks, you can set $WINETRICKS
to the location of your local winetricks installation.
You can also set $PROTON_VERSION
to a specific Proton version manually. This is usually the name of the Proton installation without the revision version number. For example, if Steam displays the name as Proton 5.0-3
, use Proton 5.0
as the value for $PROTON_VERSION
.
Wanna see Protontricks in action?
Desktop
Protontricks comes with desktop integration, adding the Protontricks app shortcut and the ability to launch external Windows executables for Proton apps. To run an executable for a Proton app, select Protontricks Launcher when opening a Windows executable (eg. EXE) in a file manager.
The Protontricks app shortcut should be available automatically after installation. If not, you may need to run protontricks-desktop-install
in a terminal to enable this functionality.
Troubleshooting
For common issues and solutions, see TROUBLESHOOTING.md.
Installation
You can install Protontricks using a community package, Flatpak or pipx. pip can also be used, but it is not recommended due to possible problems.
If you're using a Steam Deck, Flatpak is the recommended option. Open the Discover application store in desktop mode and search for Protontricks.
If you're using the Flatpak version of Steam, follow the Flatpak-specific installation instructions instead.
Community packages (recommended)
Community packages allow easier installation and updates using distro-specific package managers. They also take care of installing dependencies and desktop features out of the box, making them the recommended option if available for your distribution.
Community packages are maintained by community members and might be out-of-date compared to releases on PyPI. Note that some distros such as Debian / Ubuntu often have outdated packages for either Protontricks or Winetricks. If so, install the Flatpak version instead as outdated releases may fail to work properly.
Flatpak (recommended)
Protontricks is available on the Flathub app store:
To use Protontricks as a command-line application, add shell aliases by running the following commands:
echo "alias protontricks='flatpak run com.github.Matoking.protontricks'" >> ~/.bashrc
echo "alias protontricks-launch='flatpak run --command=protontricks-launch com.github.Matoking.protontricks'" >> ~/.bashrc
You will need to restart your terminal emulator for the aliases to take effect.
The Flatpak installation is sandboxed and only has access to the Steam installation directory by default. You will need to add filesystem permissions when using additional Steam library locations or running external Windows applications. See here for instructions on changing the Flatpak permissions.
pipx
You can use pipx to install the latest version on PyPI or the git repository for the current user. Installing Protontricks using pipx is recommended if a community package doesn't exist for your Linux distro.
pipx does not install Winetricks and other dependencies out of the box. You can install Winetricks using the installation instructions provided by the Winetricks project.
pipx requires Python 3.7 or newer.
You will need to install pip, setuptools and virtualenv first. Install the correct packages depending on your distribution:
-
Arch Linux:
sudo pacman -S python-pip python-pipx python-setuptools python-virtualenv
-
Debian-based (Ubuntu, Linux Mint):
sudo apt install python3-pip python3-setuptools python3-venv pipx
-
Fedora:
sudo dnf install python3-pip python3-setuptools python3-libs pipx
-
Gentoo:
sudo emerge -av dev-python/pip dev-python/virtualenv dev-python/setuptools python3 -m pip install --user pipx ~/.local/bin/pipx ensurepath
Close and reopen your terminal. After that, you can install Protontricks.
pipx install protontricks
To enable desktop integration as well, run the following command after installing Protontricks
protontricks-desktop-install
To upgrade to the latest release:
pipx upgrade protontricks
To install the latest development version (requires git
):
pipx install git+https://github.com/Matoking/protontricks.git
# '--spec' is required for older versions of pipx
pipx install --spec git+https://github.com/Matoking/protontricks.git protontricks
pip (not recommended)
You can use pip to install the latest version on PyPI or the git repository. This method should work in any system where Python 3 is available.
Note that this installation method might cause conflicts with your distro's package manager. To prevent this, consider using the pipx method or a community package instead.
You will need to install pip and setuptools first. Install the correct packages depending on your distribution:
- Arch Linux:
sudo pacman -S python-pip python-setuptools
- Debian-based (Ubuntu, Linux Mint):
sudo apt install python3-pip python3-setuptools
- Fedora:
sudo dnf install python3-pip python3-setuptools
- Gentoo:
sudo emerge -av dev-python/pip dev-python/setuptools
To install the latest release using pip
:
sudo python3 -m pip install protontricks
To upgrade to the latest release:
sudo python3 -m pip install --upgrade protontricks
To install Protontricks only for the current user:
python3 -m pip install --user protontricks
To install the latest development version (requires git
):
sudo python3 -m pip install git+https://github.com/Matoking/protontricks.git
Top Related Projects
Compatibility tool for Steam Play based on Wine and additional components
Compatibility tool for Steam Play based on Wine and additional components
A games launcher for GOG, Amazon and Epic Games for Linux, Windows and macOS.
Lutris desktop client
All your games in one place
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot