Skip to content

One Time Run

Eamonn Rea edited this page Jun 23, 2024 · 10 revisions

Overview

Using the One-Time-Run Extra Button in the Main Menu it is possible to select and run a custom executable inside the current game's Wineprefix with a selected version of Proton. There may be a few advantage to running a custom command specifically in the current game's prefix but usually this is not strictly necessary, One-Time Run just provides an easy interface to run an executable once with a pre-defined prefix and Proton version.

A good use-case for One-Time Run would be game patch installers such as Resident Evil 4 HD or the Committee of Zero STEINS;GATE patch.

One-Time Run supports running Windows executables with Proton, which is the primary use-case as it allows running executables in a game's prefix, but you can also equally run Linux binaries/scripts here as well.

One-Time Run Example

Note: If you would like to permanently set a custom command to run as opposed to a one-off command, please see the Custom Command option and the Custom User Start/Stop scripts to start custom scripts when game starts/ends.

Features

Menu Options

One-Time run allows you to define a few options for your custom executable:

  • One-Time Proton Version - A dropdown to select the version of Proton to execute the executable with
  • One-Time Command - The actual executable to run, this will open a file picker where you can browse to the file (hint: GTK dialogs use Ctrl+L to let you enter a custom path)
  • Arguments - A list of arguments to suffix an executable with
  • Working Directory - The path for the current working directory for the script. Will be ignored if left blank or if Use Custom Executable Directory as Working Directory is checked
  • Use Custom Executable Directory as Working Directory - Some tools (e.g., Committee of Zero's STEINS;GATE patch) are required to be ran from the same directory as the executable to find various files. Will take priority over the script's Working Directory, and if a working directory is not set the script will be executed from the same folder as the steamtinkerlaunch script's execution location.
  • Force Proton - SteamTinkerLaunch tries to detect when a program/script is a Windows file or a Linux file, using the same logic in place for Custom COmmands, but since this is not perfect you can force Proton for custom commands
  • Use Steam Linux Runtime - If executables are not working, sometimes this is because the Steam Linux Runtime is required, so this option will launch the program inside of the Steam Linux Runtime requested by the compatibility tool (or the native Linux SLR) if it is available
  • Save - Remember the configured options for later, useful if a tool or patch is required to be launched regularly

If a custom working directory is selected with either option to modify it, the command will run in a subshell. This should not cause issues but if you know of problems that could be caused with some applications by doing this, feel free to open an issue.

One-Time Winecfg / Winetricks

One-Time Run also has two extra buttons: Run Winecfg and Run Winetricks. These will run Winecfg and Winetricks respectively in the current game's prefix.

Winecfg and Winetricks will use the game's Proton version and not the version set in the One-Time Proton dropdown due to a limitation of Yad where this version cannot be fetched when the button is pressed. However, this should rarely be an issue, and can be worked around by changing the game's Proton version in the Game Menu.

Winetricks will run either the system-wide Winetricks if installed, or it will fetch Winetricks from source and run that if it is not already installed on your system. This will use "native" Winetricks and show an actual Winetricks menu as opposed to the SteamTinkerLaunch Winetricks menu.

Default

The "DEFAULT" button on the menu resets all the One-Time Run values for this game to their default states (i.e. sets all relevant One-Time Run variables in the game config file to blank). This can also be done from the command-line with --default.

Command Line Usage

Newer versions of SteamTinkerLaunch offer the ability to use One-Time Run entirely from the commandline. You can use steamtinkerlaunch otr <appid> to launch the One-Time Run GUI menu for a given game, or pass the various menu parameters via the commandline to avoid the GUI entirely.

  • --exe="<path>" - Absolute Path to the game executable. If you use STL with your game, and it is a Proton game, this option is the only hard requirement as STL will use the same Proton version as the game does.
  • --proton="<name>" - Name of the Proton version, which you can find with steamtinkerlaunch lp name. If not provided, One-Time Run will use the Per-Game Proton Version (USEPROTON)
  • --args="<args>" - Arguments to append to the executable launch.
  • --workingdir="<path>" - Absolute path for the executable working directory. By default, SteamTinkerLaunch will use the directory it was launched from as the working directory. Some executables require a custom working directory, such as a specific nested directory to access some files.
  • --useexedir - This is a simple switch that takes no parameters which uses the passed executable's directory as the working directory. This is required for some executables, such as the Committee of Zero patches.
  • --forceproton - Explicitly declare that an executable should be launched with Proton.
  • --useslr - Force the program to run inside of the Steam Linux Runtime (either native Steam Linux Runtime or the one specified by in a Proton version's toolmanifest.vdf), if available
    • If not available, you can install the required runtime from Steam manually, or run one game once with the version of Proton you're trying to use so that Steam will download the required runtime before game launch.
  • --save - Switch to tell SteamTinkerLaunch to save the passed options. This means the next time the One-Time Run GUI is opened, these options will be saved.
  • --default - Reset all stored One-Time Run options to their default values

Command-line One-Time Run usage may be useful for creating automatic tasks using SteamTinkerLaunch.

Disclaimer

Please note that as with all custom programs you can launch with SteamTinkerLaunch, you are doing so at your own risk. Also, SteamTinkerLaunch does not guarantee compatibility with your third-party tools. If a program needs some tweaking to work, SteamTinkerLaunch will not apply it automatically for you.

Clone this wiki locally