Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Environment Variables

Compositor Detection

VariableChecked ByPurpose
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.

Config Path

VariablePurpose
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.

Runtime Directory

VariablePurpose
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)

Graphics

VariablePurpose
WGPU_BACKENDForce a specific GPU backend. Set to gl for OpenGL (useful for NVIDIA compatibility)

Logging

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.

Wayland

VariablePurpose
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)