Environment variables that affect hyprlax behavior.
Enable debug output without command-line flag.
Values: 0 (off), 1 (on)
Default: 0
export HYPRLAX_DEBUG=1
hyprlax image.jpg # Debug enabledEnable trace-level logging (very verbose).
Values: 0 (off), non-empty (on)
export HYPRLAX_TRACE=1
hyprlax --debug image.jpgNumeric log level override.
Values: 0..4 where 0=error, 1=warn, 2=info, 3=debug, 4=trace
export HYPRLAX_VERBOSE=3 # debug
hyprlax image.jpgEnable detailed init-time tracing for argument/config/env processing.
Values: any non-empty string to enable
export HYPRLAX_INIT_TRACE=1
hyprlax --config ./config.toml 2>init-trace.logEnvironment variables that override config values at startup (CLI still wins):
HYPRLAX_RENDER_FPS— target FPS (e.g.,60,144)HYPRLAX_PARALLAX_SHIFT_PIXELS— base shift in pixels (float)HYPRLAX_ANIMATION_DURATION— animation duration in seconds (float)
The renderer recognizes the following variables:
HYPRLAX_PERSISTENT_VBO=1— reuse VBOs to reduce allocationsHYPRLAX_UNIFORM_OFFSET=1— pass offsets via uniforms (keeps geometry static)HYPRLAX_NO_GLFINISH=1— skip glFinish to reduce CPU/GPU syncHYPRLAX_SEPARABLE_BLUR=1— enable separable blur pathHYPRLAX_BLUR_DOWNSCALE=<n>— render blur at lower resolution (2, 4, ...)HYPRLAX_FRAME_CALLBACK=1— use Wayland frame callbacks for timingHYPRLAX_RENDER_DIAG=1— print render diagnostics when idleHYPRLAX_PROFILE=1— print frame timing/profile lines
hyprlax checks these variables to auto-detect your compositor:
Indicates Hyprland is running.
Set by: Hyprland compositor
Example: v0.35.0-1-g12345abc_1234567890
if [ -n "$HYPRLAND_INSTANCE_SIGNATURE" ]; then
echo "Running on Hyprland"
fiIndicates Sway is running.
Set by: Sway compositor
Example: /run/user/1000/sway-ipc.1000.12345.sock
if [ -n "$SWAYSOCK" ]; then
echo "Running on Sway"
fiWayland session identifier.
Set by: All Wayland compositors
Example: wayland-0, wayland-1
if [ -n "$WAYLAND_DISPLAY" ]; then
echo "Running on Wayland"
fiX11 display (legacy, not used).
Note: X11 support has been removed. This variable is ignored.
Session type indicator.
Values: wayland, x11, tty
Used for: Confirming Wayland session
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
hyprlax image.jpg
fiUser configuration directory.
Default: ~/.config
Used for: Finding config files
# hyprlax looks for configs in:
$XDG_CONFIG_HOME/hyprlax/Runtime directory for sockets.
Default: /run/user/$UID
Used for: IPC socket location (preferred when available)
Append a suffix to the IPC socket filename for isolation (useful for tests, parallel runs, or multiple instances).
- Values: any short string with letters/digits/
-/_ - Preferred path:
$XDG_RUNTIME_DIR/hyprlax-$USER-$HYPRLAND_INSTANCE_SIGNATURE-$SUFFIX.sock - Fallback path:
/tmp/hyprlax-$USER-$SUFFIX.sock
Example:
export HYPRLAX_SOCKET_SUFFIX=tests
make testAlias: HYPRLAX_TEST_SUFFIX is still accepted but considered deprecated; HYPRLAX_SOCKET_SUFFIX takes precedence when both are set.
User home directory.
Used for: Expanding ~ in paths
Force wlroots renderer backend.
Values: vulkan, gles2, pixman
Note: May affect performance
export WLR_RENDERER=gles2
hyprlax image.jpgNVIDIA proprietary driver indicator.
Values: nvidia
Used for: Detecting NVIDIA GPUs
Force software rendering.
Values: 0 (off), 1 (on)
Warning: Severely impacts performance
# For testing only
export LIBGL_ALWAYS_SOFTWARE=1
hyprlax --debug image.jpgEnable Wayland protocol debugging.
Values: 0 (off), 1 (client), 2 (server), 3 (both)
Warning: Very verbose output
export WAYLAND_DEBUG=1
hyprlax image.jpg 2>&1 | lessEGL debugging verbosity.
Values: debug, info, warning, error, fatal
Default: warning
export EGL_LOG_LEVEL=debug
hyprlax --debug image.jpg#!/bin/bash
# Development environment
export HYPRLAX_DEBUG=1
export WAYLAND_DEBUG=1
hyprlax --config ./test-config.toml test-image.jpg#!/bin/bash
# Production environment
unset HYPRLAX_DEBUG
hyprlax --config ~/.config/hyprlax/production.toml ~/wallpapers/current.jpg#!/bin/bash
# Force generic mode regardless of compositor
unset HYPRLAND_INSTANCE_SIGNATURE
unset SWAYSOCK
hyprlax --compositor generic image.jpg#!/bin/bash
# Full graphics debugging
export HYPRLAX_DEBUG=1
export EGL_LOG_LEVEL=debug
export WAYLAND_DEBUG=1
hyprlax --debug test.jpg 2>&1 | tee debug.logenv | grep -E "(HYPRLAX|WAYLAND|HYPRLAND|SWAY|XDG|WLR|EGL|LIBGL)"hyprlax --debug --compositor auto test.jpg 2>&1 | head -20This shows which environment variables hyprlax detected.
When multiple configuration methods exist:
- Command-line arguments (highest priority)
- Environment variables
- Configuration file
- Built-in defaults (lowest priority)
Example:
export HYPRLAX_DEBUG=1 # Enables debug
hyprlax --debug 0 image.jpg # Command line overrides, debug disabled- IPC socket permissions are not affected by environment variables
- Path variables are sanitized before use
- Never put sensitive data in
HYPRLAX_DEBUGoutput