Skip to content

Environment Variables

Reference for all environment variables onelf reads or sets.

Set by the runtime (visible to the packed app)

VariableValue
ONELF_DIRAbsolute path to the package root (FUSE mount, tmpfs, or cache dir). Empty string in memfd mode.
ONELF_MODEmemfd, fuse, tmpfs, cache, or dev (set by onelf run)
ONELF_ARGV0Original argv[0] before multicall resolution
ONELF_EXECAbsolute path to the packed binary
ONELF_ENTRYPOINTResolved entrypoint name
ONELF_LAUNCH_DIROriginal cwd at launch time

Library and GPU paths (auto-set if applicable)

VariableSet whenPoints to
LD_LIBRARY_PATHlib/ contains .so files<pkg>/lib followed by host driver paths
LIBGL_DRIVERS_PATHlib/dri/ exists<pkg>/lib/dri
LIBVA_DRIVERS_PATHlib/dri/ exists<pkg>/lib/dri
GBM_BACKENDS_PATHlib/gbm/ exists<pkg>/lib/gbm
__EGL_VENDOR_LIBRARY_DIRSshare/glvnd/egl_vendor.d/ exists or host has onemerged list of dirs
VK_DRIVER_FILESshare/vulkan/icd.d/ has ICD JSONscolon-joined list
LIBDRM_IDS_PATHshare/libdrm/ existsthat dir
LIBDECOR_PLUGIN_DIRshare/libdecor/plugins-1/ existsthat dir
DRIRC_CONFIGDIRshare/drirc.d/ existsthat dir
XKB_CONFIG_ROOTshare/X11/xkb/ existsthat dir
XDG_DATA_DIRSshare/ exists<pkg>/share (prepended)

LD_LIBRARY_PATH is set as a fallback for AT_EXECFN-bootstrapped binaries that do not drive an explicit linker invocation. The runtime also passes --library-path to the bundled linker on direct invocations. Both mechanisms cover the bundled lib search; the env var gets inherited by child processes the app spawns.

Read by the runtime (user-settable)

VariableEffect
ONELF_MODEForce a specific execution mode. On failure the runtime errors instead of falling back.
ONELF_GC_MAX_AGECache GC threshold in days (default 30; 0 disables auto-GC)
ONELF_FUSE_NO_NAMESPACEForce the fusermount3 fallback path even when user namespaces are available. Useful for debugging mount visibility.
XDG_RUNTIME_DIRWhere to create mountpoint dirs (falls back to /tmp)
XDG_CACHE_HOMEWhere the persistent cache mode stores packages (falls back to $HOME/.cache)
XDG_DATA_HOMEWhere onelf integrate installs .desktop files and icons (falls back to $HOME/.local/share)

Portable directory redirection

When the corresponding file exists next to the packed binary, the runtime points the variable at it and moves the original value to REAL_*:

Sibling fileRedirectsSaved as
<binary>.homeHOMEREAL_HOME
<binary>.configXDG_CONFIG_HOMEREAL_XDG_CONFIG_HOME
<binary>.shareXDG_DATA_HOMEREAL_XDG_DATA_HOME
<binary>.cacheXDG_CACHE_HOMEREAL_XDG_CACHE_HOME

See Portable Directories for the full story.

Read by onelf at pack time

VariableEffect
ONELF_PATCHELFPath to a patchelf binary, used by bundle-libs to add a fresh DT_RUNPATH to binaries without an existing slot and to inject the re-exec-safe onelf-env constructor as a DT_NEEDED on the entrypoint. Falls back to looking up patchelf in PATH.
SOURCE_DATE_EPOCHClamp file mtimes for reproducible output. See Reproducible Builds.

Released under the MIT License.