-
Simon McVittie authored
These don't actually affect the behaviour of pv-wrap, but they're sufficiently closely-related that it makes sense to document them here. Signed-off-by:
Simon McVittie <smcv@collabora.com>
Simon McVittie authoredThese don't actually affect the behaviour of pv-wrap, but they're sufficiently closely-related that it makes sense to document them here. Signed-off-by:
Simon McVittie <smcv@collabora.com>
title: pressure-vessel-wrap
section: 1
NAME
pressure-vessel-wrap - run programs in a bubblewrap container
SYNOPSIS
pressure-vessel-wrap [OPTIONS] [--] COMMAND [ARGUMENTS...]
pressure-vessel-wrap --test
pressure-vessel-wrap --version
DESCRIPTION
pressure-vessel-wrap runs COMMAND in a container, using bwrap(1).
OPTIONS
--batch
- Disable all interactivity and redirection: ignore
--shell
, all--shell-
options,--terminal
,--tty
and--xterm
. -
--copy-runtime
,--no-copy-runtime
- If a
--runtime
is active, copy it into a subdirectory of the--variable-dir
, edit the copy in-place, and mount the copy read-only in the container, instead of setting up elaborate bind-mount structures. This option requires the--variable-dir
option to be used.--no-copy-runtime
disables this behaviour and is currently the default. -
--copy-runtime-into
DIR - If DIR is an empty string, equivalent to
--no-copy-runtime
. Otherwise, equivalent to--copy-runtime --variable-dir=DIR
. --deterministic
- Process directories in a deterministic order. This debugging option will make pressure-vessel-wrap slightly slower, but makes it easier to compare log files.
--devel
- Run in a mode that enables experimental or developer-oriented features. Please see Steam Linux Runtime - guide for game developers for more details of the precise meaning of this option.
-
--env-if-host
VAR=VAL - If COMMAND is run with
/usr
from the host system, set environment variable VAR to VAL. If not, leave VAR unchanged. -
--filesystem
PATH - Share PATH from the host system with the container.
-
--freedesktop-app-id
ID - If using
--unshare-home
, use ~/.var/app/ID as the home directory. This is the same home directory that a Flatpak app for freedesktop.org app ID would use. -
--gc-legacy-runtimes
,--no-gc-legacy-runtimes
- Garbage-collect old temporary runtimes in the
--runtime-base
that appear to be left over from older versions of the SteamLinuxRuntime launcher scripts.--no-gc-legacy-runtimes
disables this behaviour, and is the default. -
--gc-runtimes
,--no-gc-runtimes
- If using
--variable-dir
, garbage-collect old temporary runtimes that are left over from a previous pressure-vessel-wrap. This is the default.--no-gc-runtimes
disables this behaviour. -
--generate-locales
,--no-generate-locales
- Passed to pressure-vessel-adverb(1).
The default is
--generate-locales
, overriding the default behaviour of pressure-vessel-adverb(1). -
--graphics-provider
DIR - If using a
--runtime
, use DIR to provide graphics drivers.If DIR is the empty string, take the graphics drivers from the runtime. This will often lead to software rendering, poor performance, incompatibility with recent GPUs or a crash, and is only intended to be done for development or debugging.Otherwise, DIR must be the absolute path to a directory that is the root of an operating system installation (a "sysroot"). The default is/
. -
--home
DIR - Use DIR as the home directory. This implies
--unshare-home
. -
--host-ld-preload
MODULE - Deprecated equivalent of
--ld-preload
. Despite its name, the MODULE has always been interpreted as relative to the current execution environment, even if pressure-vessel-wrap is running in a container. -
--import-vulkan-layers
,--no-import-vulkan-layers
- If
--no-import-vulkan-layers
is specified, the Vulkan layers will not be imported from the host system. The default is--import-vulkan-layers
. -
--keep-game-overlay
,--remove-game-overlay
- If
--remove-game-overlay
is specified, remove the Steam Overlay from theLD_PRELOAD
. The default is--keep-game-overlay
. --launcher
- Instead of specifying a command with its arguments to execute, all the
elements after
--
will be used as arguments forsteam-runtime-launcher-service
. This option implies--batch
. -
--ld-audit
MODULE - Add MODULE from the current execution environment to
LD_AUDIT
when executing COMMAND. If COMMAND is run in a container, or if pressure-vessel-wrap is run in a Flatpak sandbox and COMMAND will be run in a different container or on the host system, then the path of the MODULE will be adjusted as necessary. -
--ld-audits
MODULE[:MODULE...] - Same as
--ld-audit
, but the argument is a colon-delimited string (the same as$LD_AUDIT
itself). -
--ld-preload
MODULE - Add MODULE from the current execution environment to
LD_PRELOAD
when executing COMMAND. If COMMAND is run in a container, or if pressure-vessel-wrap is run in a Flatpak sandbox and COMMAND will be run in a different container or on the host system, then the path of the MODULE will be adjusted as necessary. -
--ld-preloads
MODULE[:MODULE...] - Same as
--ld-preload
, but the argument is a string delimited by colons and/or spaces (the same as$LD_PRELOAD
itself). --only-prepare
- Prepare the runtime, but do not actually run COMMAND.
With
--copy-runtime
, the prepared runtime will appear in a subdirectory of the--variable-dir
. -
--pass-fd
FD - Pass the file descriptor FD (specified as a small positive integer) from the parent process to the COMMAND. The default is to only pass through file descriptors 0, 1 and 2 (stdin, stdout and stderr).
--runtime=
- Use the current execution environment's /usr to provide /usr in the container.
-
--runtime
PATH - Use PATH to provide /usr in the container. If PATH/files/ is a directory, PATH/files/ is used as the source of runtime files: this is appropriate for Flatpak-style runtimes that contain PATH/files/ and PATH/metadata. Otherwise, PATH is used directly. If PATH/files/usr or PATH/usr exists, the source of runtime files is assumed to be a complete sysroot (containing bin/sh, usr/bin/env and many other OS files). Otherwise, it is assumed to be a merged-/usr environment (containing bin/sh, bin/env and many other OS files). For example, a Flatpak runtime is a suitable value for PATH.
-
--runtime-base
PATH - If
--runtime
is specified as a relative path, look for it relative to PATH. -
--share-home
,--unshare-home
- If
--unshare-home
is specified, use the home directory given by--home
,--freedesktop-app-id
,--steam-app-id
or their corresponding environment variables, at least one of which must be provided.If--share-home
is specified, use the home directory from the current execution environment.The default is--share-home
, unless--home
or its corresponding environment variable is used. -
--share-pid
,--unshare-pid
- If
--unshare-pid
is specified, create a new process ID namespace. Note that this is known to interfere with IPC between Steam and its games. The default is--share-pid
. --shell=none
- Don't run an interactive shell. This is the default.
-
--shell=after
,--shell-after
- Run an interactive shell in the container after COMMAND exits.
In that shell, running
"$@"
will re-run COMMAND. -
--shell=fail
,--shell-fail
- The same as
--shell=after
, but do not run the shell if COMMAND exits with status 0. -
--shell=instead
,--shell-instead
- The same as
--shell=after
, but do not run COMMAND at all. --single-thread
- Avoid multi-threaded code paths, for debugging.
-
--steam-app-id
N - Assume that we are running Steam app ID N, specified as an integer.
If using
--unshare-home
, use ~/.var/app/com.steampowered.AppN as the home directory. -
--systemd-scope
,--no-systemd-scope
- If
--systemd-scope
is specified, attempt to put the game into asystemd --user
scope. Its name will be similar toapp-steam-app975370-12345.scope
, orapp-steam-unknown-12345.scope
if the Steam app ID is not known (for example when running theHelp -> System Information
diagnostic tools). The scope can be viewed withsystemctl --user
orsystemd-cgls
, and can be terminated with a command likesystemctl --user kill app-steam-app975370-12345.scope
.These options have no effect if pressure-vessel cannot contact systemd's D-Bus interface, and in particular they do not prevent pressure-vessel from working on machines that do not have systemd.These options have no effect when running under Flatpak. Flatpak will always try to put the game in a scope with a name likeapp-flatpak-com.valvesoftware.Steam-12345.scope
, separate from the scope used to run Steam itself.The default is--no-systemd-scope
. --terminal=none
- Disable features that would ordinarily use a terminal.
--terminal=auto
- Equivalent to
--terminal=xterm
if a--shell
option other thannone
is used, or--terminal=none
otherwise. -
--terminal=tty
,--tty
- Use the current execution environment's controlling tty for
the
--shell
options. -
--terminal=xterm
,--xterm
- Start an xterm(1) inside the container.
-
--terminate-timeout
SECONDS,--terminate-idle-timeout
SECONDS - Passed to pressure-vessel-wrap(1).
--test
- Perform a smoke-test to determine whether pressure-vessel-wrap can work, and exit. Exit with status 0 if it can or 1 if it cannot.
-
--variable-dir
PATH - Use PATH as a cache directory for files that are temporarily unpacked or copied. It will be created automatically if necessary.
--verbose
- Be more verbose.
--version
- Print the version number and exit.
-
--with-host-graphics
,--without-host-graphics
- Deprecated form of
--graphics-provider
.--with-host-graphics
is equivalent to either--graphics-provider=/run/host
if it looks suitable, or--graphics-provider=/
if not.--without-host-graphics
is equivalent to--graphics-provider=""
.
ENVIRONMENT
The following environment variables (among others) are read by pressure-vessel-wrap(1).
-
__EGL_VENDOR_LIBRARY_DIRS
,__EGL_VENDOR_LIBRARY_FILENAMES
- Used to locate EGL ICDs to be made available in the container
if
--runtime
and--graphics-provider
are active. -
BWRAP
(path) - Absolute path to bwrap(1). The default is to try several likely locations.
-
DBUS_SESSION_BUS_ADDRESS
,DBUS_SYSTEM_BUS_ADDRESS
- Used to locate the well-known D-Bus session and system buses so that they can be made available in the container.
DISPLAY
- Used to locate the X11 display to make available in the container.
FLATPAK_ID
- Used to locate the app-specific data directory when running in a Flatpak environment.
LIBGL_DRIVERS_PATH
- Used to locate Mesa DRI drivers to be made available in the container
if
--runtime
and--graphics-provider
are active. LIBVA_DRIVERS_PATH
- Used to locate VA-API drivers to be made available in the container
if
--runtime
and--graphics-provider
are active. -
PRESSURE_VESSEL_BATCH
(boolean) - If set to
1
, equivalent to--batch
. If set to0
, no effect. -
PRESSURE_VESSEL_COPY_RUNTIME
(boolean) - If set to
1
, equivalent to--copy-runtime
. If set to0
, equivalent to--no-copy-runtime
. -
PRESSURE_VESSEL_COPY_RUNTIME_INTO
(path or empty string) - If the string is empty, it is a deprecated equivalent of
--no-copy-runtime
. Otherwise, it is a deprecated equivalent of--copy-runtime --variable-dir="$PRESSURE_VESSEL_COPY_RUNTIME_INTO"
. -
PRESSURE_VESSEL_DETERMINISTIC
(boolean) - If set to
1
, equivalent to--deterministic
. If set to0
, no effect. -
PRESSURE_VESSEL_DEVEL
(boolean) - If set to
1
, equivalent to--devel
. If set to0
, no effect. -
PRESSURE_VESSEL_FILESYSTEMS_RO
(:
-separated list of paths) - Make these paths available read-only inside the container if they
exist, similar to
--filesystem
but read-only. For example, MangoHUD and vkBasalt users might usePRESSURE_VESSEL_FILESYSTEMS_RO="$MANGOHUD_CONFIGFILE:$VKBASALT_CONFIG_FILE"
if the configuration files are outside the home directory. -
PRESSURE_VESSEL_FILESYSTEMS_RW
(:
-separated list of paths) - Make these paths available read/write inside the container if they
exist, similar to
--filesystem
. -
PRESSURE_VESSEL_FDO_APP_ID
(string) - Equivalent to
--freedesktop-app-id="$PRESSURE_VESSEL_FDO_APP_ID"
. -
PRESSURE_VESSEL_GC_RUNTIMES
(boolean) - If set to
1
, equivalent to--gc-runtimes
. If set to0
, equivalent to--no-gc-runtimes
. -
PRESSURE_VESSEL_GENERATE_LOCALES
(boolean) - If set to
1
, equivalent to--generate-locales
. If set to0
, equivalent to--no-generate-locales
. -
PRESSURE_VESSEL_GRAPHICS_PROVIDER
(absolute path or empty string) - Equivalent to
--graphics-provider="$PRESSURE_VESSEL_GRAPHICS_PROVIDER"
. -
PRESSURE_VESSEL_HOME
(path) - Equivalent to
--home="$PRESSURE_VESSEL_HOME"
. -
PRESSURE_VESSEL_HOST_GRAPHICS
(boolean) - Deprecated form of
$PRESSURE_VESSEL_GRAPHICS_PROVIDER
. If set to1
, equivalent to either--graphics-provider=/run/host
if it looks suitable, or--graphics-provider=/
if not. If set to0
, equivalent to--graphics-provider=""
. -
PRESSURE_VESSEL_IMPORT_VULKAN_LAYERS
(boolean) - If set to
1
, equivalent to--import-vulkan-layers
. If set to0
, equivalent to--no-import-vulkan-layers
. -
PRESSURE_VESSEL_LOG_INFO
(boolean) - If set to 1, same as
SRT_LOG=info
-
PRESSURE_VESSEL_LOG_WITH_TIMESTAMP
(boolean) - If set to 1, same as
SRT_LOG=timestamp
-
PRESSURE_VESSEL_PREFIX
(path) - pressure-vessel itself does not use this,
but the Steam Linux Runtime container runtime framework uses it to
locate a custom version of pressure-vessel.
If used, it must be set to a relocatable build of pressure-vessel,
so that
$PRESSURE_VESSEL_PREFIX/bin/pressure-vessel-unruntime
exists. -
PRESSURE_VESSEL_REMOVE_GAME_OVERLAY
(boolean) - If set to
1
, equivalent to--remove-game-overlay
. If set to0
, equivalent to--keep-game-overlay
. -
PRESSURE_VESSEL_RUNTIME
(path, filename or empty string) - Equivalent to
--runtime="$PRESSURE_VESSEL_RUNTIME"
. -
PRESSURE_VESSEL_RUNTIME_BASE
(path, filename or empty string) - Equivalent to
--runtime-base="$PRESSURE_VESSEL_RUNTIME_BASE"
. -
PRESSURE_VESSEL_SHARE_HOME
(boolean) - If set to
1
, equivalent to--share-home
. If set to0
, equivalent to--unshare-home
. -
PRESSURE_VESSEL_SHARE_PID
(boolean) - If set to
1
, equivalent to--share-pid
. If set to0
, equivalent to--unshare-pid
. -
PRESSURE_VESSEL_SHELL
(none
,after
,fail
orinstead
) - Equivalent to
--shell="$PRESSURE_VESSEL_SHELL"
. -
PRESSURE_VESSEL_SYSTEMD_SCOPE
(boolean) - If set to
1
, equivalent to--systemd-scope
. If set to0
, equivalent to--no-systemd-scope
. -
PRESSURE_VESSEL_TERMINAL
(none
,auto
,tty
orxterm
) - Equivalent to
--terminal="$PRESSURE_VESSEL_TERMINAL"
. -
PRESSURE_VESSEL_VARIABLE_DIR
(path) - Equivalent to
--variable-dir="$PRESSURE_VESSEL_VARIABLE_DIR"
. -
PRESSURE_VESSEL_VERBOSE
(boolean) - If set to
1
, equivalent to--verbose
. -
PRESSURE_VESSEL_WORKAROUNDS
(tokens separated by space, tab and/or comma) - Tokens of the form
foo
or+foo
enable various workarounds. Tokens of the form-foo
or!foo
disable the corresponding workaround. See pressure-vessel source code for details. The default is to auto-detect which workarounds are needed. PULSE_CLIENTCONFIG
- Used to locate PulseAudio client configuration.
PULSE_SERVER
- Used to locate a PulseAudio server.
PWD
- Used to choose between logically equivalent names for the current working directory (see get_current_dir_name(3)).
-
SRT_LAUNCHER_SERVICE
(path) - pressure-vessel itself does not use this, but in the Steam Linux Runtime container runtime framework, it sets an implementation of steam-runtime-launcher-service(1) to use instead of selecting one automatically.
-
SRT_LAUNCHER_SERVICE_STOP_ON_EXIT
(boolean) - pressure-vessel itself does not use this,
but in the Steam Linux Runtime container runtime framework,
setting it to
0
prevents the service started by STEAM_COMPAT_LAUNCHER_SERVICE from exiting until it is specifically terminated bysteam-runtime-launch-client --terminate
or a signal. SRT_LOG
- A sequence of tokens separated by colons, spaces or commas affecting how output is recorded. See source code for details.
-
SRT_LOG_ROTATION
(boolean) - pressure-vessel itself does not use this,
but in the Steam Linux Runtime container runtime framework,
setting it to
0
prevents cleanup of old log files. -
STEAM_COMPAT_APP_ID
(integer) - Equivalent to
--steam-app-id="$STEAM_COMPAT_APP_ID"
. -
STEAM_COMPAT_APP_LIBRARY_PATH
(path) - Deprecated equivalent of
STEAM_COMPAT_MOUNTS
, except that it is a single path instead of being colon-delimited. -
STEAM_COMPAT_APP_LIBRARY_PATHS
(:
-separated list of paths) - Deprecated equivalent of
STEAM_COMPAT_MOUNTS
. -
STEAM_COMPAT_CLIENT_INSTALL_PATH
(path) - When used as a Steam compatibility tool, the absolute path to the Steam client installation directory. This is made available read/write in the container.
-
STEAM_COMPAT_DATA_PATH
(path) - When used as a Steam compatibility tool, the absolute path to the variable data directory used by Proton, if any. This is made available read/write in the container.
-
STEAM_COMPAT_FLAGS
(comma-separated list of tokens) -
runtime-sdl2
is equivalent toSTEAM_COMPAT_RUNTIME_SDL2=1
.runtime-sdl3
is equivalent toSTEAM_COMPAT_RUNTIME_SDL3=1
. Other tokens are ignored by pressure-vessel-wrap, but might have an effect on other components. -
STEAM_COMPAT_INSTALL_PATH
(path) - Top-level directory containing the game itself, even if the current working directory is actually a subdirectory of this. This is made available read/write in the container.
-
STEAM_COMPAT_LAUNCHER_SERVICE
(token) - pressure-vessel itself does not use this, but in the Steam Linux Runtime container runtime framework, setting it to container-runtime provides a D-Bus service which can be used to send debugging commands into the container environment. In Steam Linux Runtime 1.0, setting it to scout-in-container provides a similar D-Bus service where the execution environment is compatible with Steam Runtime 1 'scout'. In Proton, setting it to proton provides a similar D-Bus service with an execution environment that is preconfigured to run Proton's version of Wine. See steam-runtime-launch-client(1) for examples of how to use this.
-
STEAM_COMPAT_LIBRARY_PATHS
(:
-separated list of paths) - Colon-delimited list of paths to Steam Library directories containing the game, the compatibility tools if any, and any other resources that the game will need, such as DirectX installers. Each is currently made available read/write in the container.
-
STEAM_COMPAT_MOUNT_PATHS
(:
-separated list of paths) - Deprecated equivalent of
STEAM_COMPAT_MOUNTS
. -
STEAM_COMPAT_MOUNTS
(:
-separated list of paths) - Colon-delimited list of paths to additional directories that are to be made available read/write in the container.
-
STEAM_COMPAT_RUNTIME_SDL2
(boolean) - If set to
1
, setSDL_DYNAMIC_API
so that the runtime's version of SDL 2 will be used in preference to any copy that might be bundled or statically linked in an app or game (as long as it is version ≥ 2.0.2 and thedynapi
feature has not been disabled). The advantage of this variable over settingSDL_DYNAMIC_API
directly is that pressure-vessel-wrap sets up appropriate distribution-specific paths so that both 32- and 64-bit SDL 2 will work. Typically this would be enabled by setting a game's Steam launch options toSTEAM_COMPAT_RUNTIME_SDL2=1 %command%
. -
STEAM_COMPAT_RUNTIME_SDL3
(boolean) - Same as
STEAM_COMPAT_RUNTIME_SDL2
, but settingSDL3_DYNAMIC_API
for SDL 3 apps or games. -
STEAM_COMPAT_SESSION_ID
(integer) - (Not used yet, but should be.)
-
STEAM_COMPAT_SHADER_PATH
(path) - When used as a Steam compatibility tool, the absolute path to the variable data directory used for cached shaders, if any. This is made available read/write in the container.
-
STEAM_COMPAT_TOOL_PATH
(path) - Deprecated equivalent of
STEAM_COMPAT_TOOL_PATHS
, except that it is a single path instead of being colon-delimited. -
STEAM_COMPAT_TOOL_PATHS
(:
-separated list of paths) - Colon-delimited list of paths to Steam compatibility tools in use, such as Proton and the Steam Linux Runtime. They are currently made available read/write in the container.
-
STEAM_COMPAT_TRACING
(boolean) - If set to
1
, allow system tracing if it is enabled at system level. This currently results in/sys/kernel/tracing
being read/write, which has no practical effect unless the OS has granted access to that directory to the user running Steam. Steam automatically sets this when system tracing is enabled on a Steam Deck in developer mode. -
STEAM_LINUX_RUNTIME_LOG
(boolean) - pressure-vessel itself does not use this,
but in the Steam Linux Runtime container runtime framework,
setting it to
1
redirects standard output and standard error to$STEAM_LINUX_RUNTIME_LOG_DIR/slr-*.log
or$PRESSURE_VESSEL_VARIABLE_DIR/slr-*.log
, while also enabling info-level logging similar toPRESSURE_VESSEL_LOG_INFO=1
. -
STEAM_LINUX_RUNTIME_KEEP_LOGS
(boolean) - pressure-vessel itself does not use this,
but in the Steam Linux Runtime container runtime framework,
setting it to
1
prevents cleanup of old log files. -
STEAM_LINUX_RUNTIME_VERBOSE
(boolean) - pressure-vessel itself does not use this,
but in the Steam Linux Runtime container runtime framework,
setting it to
1
enables debug-level messages similar toPRESSURE_VESSEL_VERBOSE=1
. -
STEAM_RUNTIME
(path) - pressure-vessel-wrap refuses to run if this environment variable is set. Use pressure-vessel-unruntime(1) instead.
-
SteamAppId
(integer) - Equivalent to
--steam-app-id="$SteamAppId"
. Must only be set for the main processes that are running a game, not for any setup/installation steps that happen first.STEAM_COMPAT_APP_ID
is used with a higher priority. VDPAU_DRIVER_PATH
- Used to locate VDPAU drivers to be made available in the container
if
--runtime
and--graphics-provider
are active. -
VK_ADD_DRIVER_FILES
,VK_DRIVER_FILES
,VK_ICD_FILENAMES
- Used to locate Vulkan ICDs to be made available in the container
if
--runtime
and--graphics-provider
are active. -
VK_ADD_LAYER_PATH
,VK_LAYER_PATH
- Used to locate Vulkan explicit layers
if
--runtime
and--graphics-provider
are active. WAYLAND_DISPLAY
- Used to locate the Wayland display to make available in the container.
XDG_DATA_DIRS
- Used to locate Vulkan ICDs and layers
if
--runtime
and--graphics-provider
are active.
The following environment variables are set by pressure-vessel-wrap(1).
__EGL_VENDOR_LIBRARY_DIRS
- Unset if
--runtime
and--graphics-provider
are active, to make sure__EGL_VENDOR_LIBRARY_FILENAMES
will be used instead. __EGL_VENDOR_LIBRARY_FILENAMES
- Set to a search path for EGL ICDs
if
--runtime
and--graphics-provider
are active. -
DBUS_SESSION_BUS_ADDRESS
,DBUS_SYSTEM_BUS_ADDRESS
- Set to paths in the container's private
/run
where the well-known D-Bus session and system buses are made available. DISPLAY
- Set to a value corresponding to the socket in the container's
/tmp/.X11-unix
. LD_AUDIT
- Set according to
--ld-audit
. LD_LIBRARY_PATH
- Set to a search path for shared libraries if
--runtime
is active. LD_PRELOAD
- Set according to
--ld-preload
,--keep-game-overlay
,--remove-game-overlay
. LIBGL_DRIVERS_PATH
- Set to a search path for Mesa DRI drivers
if
--runtime
and--graphics-provider
are active. LIBVA_DRIVERS_PATH
- Set to a search path for VA-API drivers
if
--runtime
and--graphics-provider
are active. PATH
- Reset to a reasonable value if
--runtime
is active. PULSE_CLIENTCONFIG
- Set to the address of a PulseAudio client configuration file.
PULSE_SERVER
- Set to the address of a PulseAudio server socket.
PWD
- Set to the current working directory inside the container.
STEAM_RUNTIME
- Set to
/
if using the Steam Runtime 1 'scout' runtime. TERMINFO_DIRS
- Set to the required search path for terminfo(5) files if
the
--runtime
appears to be Debian-based. VDPAU_DRIVER_PATH
- Set to a search path for VDPAU drivers
if
--runtime
and--graphics-provider
are active. -
VK_DRIVER_FILES
,VK_ICD_FILENAMES
- Set to a search path for Vulkan ICDs
if
--runtime
and--graphics-provider
are active. -
VK_ADD_DRIVER_FILES
,VK_ADD_LAYER_PATH
,VK_LAYER_PATH
- Unset if
--runtime
and--graphics-provider
are active. XAUTHORITY
- Set to a value corresponding to a file in the container's
private
/run
. XDG_CACHE_HOME
- Set to
$HOME/.cache
(in the private home directory) if--unshare-home
is active. XDG_CONFIG_HOME
- Set to
$HOME/.config
(in the private home directory) if--unshare-home
is active. XDG_DATA_HOME
- Set to
$HOME/.local/share
(in the private home directory) if--unshare-home
is active. XDG_DATA_DIRS
- Set to include a search path for Vulkan layers
if
--runtime
and--graphics-provider
are active. XDG_RUNTIME_DIR
- Set to a new directory in the container's private
/run
if--runtime
is active.
OUTPUT
The standard output from COMMAND is printed on standard output.
The standard error from COMMAND is printed on standard error. Diagnostic messages from pressure-vessel-wrap and pressure-vessel-wrap may also be printed on standard error.
SIGNALS
The pressure-vessel-wrap process replaces itself with a bwrap(1)
process. Fatal signals to the resulting bwrap(1) process will result
in SIGTERM
being received by the pressure-vessel-wrap process
that runs COMMAND inside the container.
EXIT STATUS
Nonzero (failure) exit statuses are subject to change, and might be changed to be more like env(1) in future.
- 0
- The COMMAND exited successfully with status 0
- Assorted nonzero statuses
- An error occurred while setting up the execution environment or starting the COMMAND
- Any value 1-255
- The COMMAND exited unsuccessfully with the status indicated
- 128 + n
- The COMMAND was killed by signal n (this is the same encoding used by bash(1), bwrap(1) and env(1))
- 255
- The COMMAND terminated in an unknown way (neither a normal exit nor terminated by a signal).
EXAMPLE
In this example we install and run a small free game that does not require communication or integration with Steam, without going via Steam to launch it. This will only work for simple games without DRM or significant Steam integration.
$ steam steam://install/1628350 # Steam Linux Runtime 3.0 'sniper'
$ steam steam://install/599390 # Battle for Wesnoth
$ rm -fr ~/tmp/pressure-vessel-var
$ mkdir -p ~/tmp/pressure-vessel-var
$ cd ~/.steam/steam/steamapps/common/wesnoth
$ /path/to/pressure-vessel/bin/pressure-vessel-wrap \
--runtime ~/.steam/steam/steamapps/common/SteamLinuxRuntime_sniper/sniper_platform_*/
--variable-dir ~/tmp/pressure-vessel-var \
--shell=instead \
-- \
./start.sh
In the resulting xterm(1), you can explore the container interactively,
then type "$@"
(including the double quotes) to run the game itself.