Variable Checked By Purpose
HYPRLAND_INSTANCE_SIGNATUREservices/compositor/hyprland.rsDetects Hyprland compositor
NIRI_SOCKET (or NIRI_SOCKET_PATH)services/compositor/niri.rsDetects Niri compositor
WAYLAND_DISPLAYservices/compositor/generic.rsFallback generic Wayland backend
ashell checks these in order (Hyprland, Niri, MangoWC, then the generic Wayland backend). The first one found determines the compositor backend. MangoWC is detected through its mmsg IPC rather than an environment variable.
Variable Purpose
HOMEThe default config path is ~/.config/ashell/config.toml (XDG_CONFIG_HOME is not consulted)
The config path can be overridden with the --config-path CLI flag. The path is expanded with ~ and $VAR support.
Variable Purpose
XDG_RUNTIME_DIRLocation of the IPC socket (ashell.sock) and the default log directory (both fall back to a private $TMPDIR/ashell-<uid> if unset or invalid)
Variable Purpose
WGPU_BACKENDForce a specific GPU backend. Set to gl for OpenGL (useful for NVIDIA compatibility)
ashell uses flexi_logger which reads the log level from the config file’s logging.level field. The format follows env_logger syntax :
# In config.toml
[logging]
level = "debug"
# level = "warn,ashell::services=debug"
# level = "info,ashell::modules::settings=trace"
logging.target selects the destination ("file", the default, or "stdout" / "stderr") and logging.directory overrides the log directory used by the "file" target.
Variable Purpose
WAYLAND_DISPLAYThe Wayland display socket. Must be set for ashell to run
LD_LIBRARY_PATHMay need to include paths to Wayland/Vulkan/Mesa libraries (handled automatically by Nix wrapper)