# Auto-start Hyprland on tty1 in the live session if [[ "$(tty)" == "/dev/tty1" ]] && [[ -z "$WAYLAND_DISPLAY" ]]; then # Allow a software-rendering fallback so the live session comes up even # without a GPU (VMs, headless, exotic hardware). On real hardware wlroots # still selects the hardware renderer; this only permits llvmpipe when no # GPU renderer is available. Must be exported before Hyprland starts — # wlroots reads it at renderer init, earlier than any Hyprland `env=` line. export WLR_RENDERER_ALLOW_SOFTWARE=1 # Software cursors: hardware-cursor planes are often unusable in VMs and # show as invisible/garbled; this is the reliable choice for a live medium. export WLR_NO_HARDWARE_CURSORS=1 # Run the compositor, capturing its output so a failed live boot is # diagnosable (Hyprland also keeps its own log under $XDG_RUNTIME_DIR/hypr/). # On exit, drop to an interactive shell with the error in view instead of # letting the getty autologin respawn-loop hide it behind a blank cursor. Hyprland &>/var/log/hyprland-live.log echo "Hyprland exited (rc=$?). Log: /var/log/hyprland-live.log" exec bash -i fi