→ WEM Options
This page describes the various options that are offered by WEM.
→ Env Config File
Env configuration files live in the $HOME/.config/wem
directory and are named after what you pass to WEM when doing the init
command. Special characters and spaces are stripped out to form the "slug" that makes up the name of the configuration file name.
The example env, tes3
, has a cfg file at $HOME/.config/wem/tes3.cfg
. This file can be hand-edited if desired, or edited via the wem cfg
command.
→ Variable Expansion
Environment variables such as $HOME
will be expanded when used as WEM option values.
InstallExe = "$HOME/games/MyGameInstaller.exe"
Additionally, option values can be used as variables in another value:
# Note the leading period in front of WinePrefix
RunWorkDir = "{{.WinePrefix}}/drive_c/game"
Note that nested variables will not properly render.
→ Unset options
Every option argument comes with a --no-ARG
variant that can be used to unset a value. Note that unset options take precedence over set options, so if both are used the value will be unset.
→ Info Options
→ Date
Date = "2002-05-01"
CLI arg: --info-date 2002-05-01
Optional string that describes a date relating to the thing you're running, possibly a release date.
→ Name
Name = "The Elder Scrolls III: Morrowind GOTY Edition"
CLI arg: --info-name "The Elder Scrolls III: Morrowind GOTY Edition"
A string that's passed to WEM during the wem init
command. It should describe the thing you are trying to run.
→ Install Options
→ GogSilentInstall
GogSilentInstall = false
CLI arg: --gog-silent-install
Meant for game installers from GOG.com. This option auto-adds arguments to the InstallExe
which:
-
Set the game install directory to
$WINEPREFIX/drive_c/game
- Prevent all message boxes
- Prevent all error notifications
This does mean that any errors received will be silenced, but in practice most GOG.com installer errors can be disregarded.
→ InstallArgs
InstallArgs = ["foo", "bar", "baz"]
CLI arg: --install-args foo bar baz
Optional command-line arguments to pass to InstallExe
.
→ InstallExe
InstallExe = "$HOME/games/setup_some-game.exe"
CLI arg: --install-exe $HOME/games/setup_some-game.exe
Optional string that's a path to an executable to run for installation.
→ InstallExpected
InstallExpected = "{{.WinePrefix}}/drive_c/game/Morrowind.exe"
CLI arg: --install-expected "{{.WinePrefix}}/drive_c/game/Morrowind.exe"
An optional string that is a file which should exist after installation, possibly a game executable.
→ InstallWorkDir
InstallWorkDir = "$HOME/games"
CLI arg: --install-workdir $HOME/games
Optional string that should be the working directory to use when running InstallExe
.
→ Run Options
→ QuietRun
QuietRun = false
CLI arg: --quiet-run
Whether or not to supress output from wine and the RunExe
.
→ RunArgs
RunArgs = ["foo", "bar", "baz"]
CLI arg: --run-args foo bar baz
Optional command-line arguments to pass to RunExe
.
→ RunExe
RunExe = "$HOME/games/MyGame/Game.exe"
CLI arg: --run-exe $HOME/games/MyGame/Game.exe
Required string that's a path to an executable to run with wine.
→ RunPrefix
RunPrefix = "mangohud"
CLI arg: --run-prefix mangohud
Optional string to prepend to the RunExe
. Useful for integrating tools like MangoHud.
→ RunSuffix
RunSuffix = "foobar"
CLI arg: --run-suffix foobar
Optional string to append to the RunExe
.
→ RunPre
RunPre = "mv /tmp/something /tmp/somethingelse"
CLI arg: --run-pre "mv /tmp/something /tmp/somethingelse"
Optional string that is a command to run before running the RunExe
, as well as any related args. Must be quoted if args are used.
→ RunPost
RunPost = "cp some/save.file some/backupdir/"
CLI arg: --run-post "cp some/save.file some/backupdir/"
Optional string that is a command to run after running the RunExe
, as well as any related args. Must be quoted if args are used.
→ RunWorkDir
RunWorkDir = "$HOME/games/SomeGame"
CLI arg: --run-workdir $HOME/games/SomeGame
Optional string that will be the working directory for running the RunExe
.
→ System Options
→ ReducePulseLatency
ReducePulseLatency = false
CLI arg: --reduce-pulse-latency
Include the PULSE_LATENCY_MSEC=60
environment variable to possibly improve audio quality. This can be helpful if you get audio cracking.
→ RestartPulse
RestartPulse = false
CLI arg: --restart-pulse
Restart PulseAudio before running the RunExe
.
→ RestoreResolution
CLI arg: --restore-resolution
RestoreResolution = false
Should WEM try to restore your desktop resolution after running the RunExe
.
→ SingleCore
SingleCore = false
CLI arg: --single-core
Should WEM try to run the RunExe
on a single core via taskset
.
→ SysEnvVars
SysEnvVars = ["FOO=BAR", "HRISTOS=IS_COOL"]
CLI arg: --sys-env-vars FOO=BAR HRISTOS=IS_COOL
System environment variables to set for running the RunExe
.
→ VulkanIcdLoader
VulkanIcdLoader = "/path/to/file.json"
CLI arg: --vulkan-icd-loader /path/to/file.json
Optional string that's a path to a Vulkan ICD file.
→ Wine Options
→ DxvkVersion
DxvkVersion = "1.8.1"
CLI arg: --dxvk-version 1.8.1
Optional string that's a valid DXVK release version to install and use.
→ Esync
Esync = false
CLI arg: --esync
Enable esync.
→ Fsync
Fsync = false
CLI arg: --fsync
Enable fsync.
→ WineArch
WineArch = "win64"
CLI arg: --wine-arch win64
Required string that sets the architecture of the env.
→ WineArgs
WineArgs = ["foo", "bar"]
CLI arg: --wine-args foo bar
Optional args to pass to WineExe
.
→ WineDllOverrides
WineDllOverrides = "dinput,d3d8=n,b"
CLI arg: --wine-dlloverrides "dinput,d3d8=n,b"
Optional string to pass to WINEDLLOVERRIDES
.
→ WineExe
WineExe = "/bin/wine"
CLI arg: --wine-exe /bin/wine
Required string that is a path to a wine executable.
→ WinePrefix
WinePrefix = "$HOME/games/WinePrefixes/TES3"
CLI arg: --wine-prefix $HOME/games/WinePrefixes/TES3
Required string that is a path to a wine prefix directory.
→ VirtualDesktop
VirtualDesktop = "1920x1080"
CLI arg: --virtualdesktop 1920x1080
Optional string that's in the "Xresolution"x"Yresolution"
format, that sets the resolution of a wine virtual desktop for the env.
→ Vkd3dVersion
Vkd3dVersion = "2.2"
CLI arg: --vkd3d-version 2.2
Optional string that's a valid VKD3D-Proton release version to install and use.