INC-2026-04-07-002: Resolution
Resolution
Immediate Fix (Applied)
Recreated the env-gpu.conf symlink in the stow package:
ln -sf /home/evanusmodestus/atelier/_projects/personal/dots-quantum/hosts/razer/env-gpu.conf \
~/atelier/_projects/personal/dots-quantum/hyprland/.config/hypr/env-gpu.conf
Permanent Fix (Proposed)
Replace the symlink-based GPU config sourcing with hostname-based path resolution. This eliminates the per-machine symlink entirely.
Change hyprland.conf line 113:
- source = ~/.config/hypr/env-gpu.conf
+ source = ~/atelier/_projects/personal/dots-quantum/hosts/$HOST/env-gpu.conf
$HOST is set by zsh to the machine hostname (modestus-razer, modestus-p16g, etc.). Each machine sources its own GPU config automatically. No symlink to manage, no gitignore conflict, no deletion risk.
Requirements:
-
Each machine has
hosts/<hostname>/env-gpu.confin dots-quantum -
Currently exists:
hosts/razer/env-gpu.conf,hosts/p16g/env-gpu.conf -
New machine: create
hosts/<newhostname>/env-gpu.conf -
Hostname dirs must match
$HOST— verify withecho $HOSTon each machine
Cleanup after applying:
# Remove the symlink from stow package (no longer needed)
rm ~/atelier/_projects/personal/dots-quantum/hyprland/.config/hypr/env-gpu.conf
# Remove the gitignore entry for env-gpu.conf
# Edit .gitignore and remove: hyprland/.config/hypr/env-gpu.conf
# Commit the hyprland.conf change
cd ~/atelier/_projects/personal/dots-quantum
git add hyprland/.config/hypr/hyprland.conf .gitignore
git commit -m "fix(hyprland): Source env-gpu.conf by hostname — eliminates per-machine symlink
Replace source = ~/.config/hypr/env-gpu.conf with hostname-based path:
source = ~/...dots-quantum/hosts/\$HOST/env-gpu.conf
Root cause of INC-2026-04-07-002: commit 64253e7 deleted the symlink
from git, which removed it from the stow-deployed config. Without GPU
env vars, Hyprland initialized in degraded mode where USB HID input
devices (built-in keyboard) did not function.
Ref: INC-2026-04-07-002"
Secondary Fix: Waybar Slow Startup
hyprland.conf exec-once lines reference swww-daemon and a wallpaper cycle script. If swww is not installed, these hang and delay waybar and other startup processes.
Options:
-
Install
swwwon all machines:sudo pacman -S swww -
Comment out the swww lines in
hyprland.confif not needed -
Background the wallpaper script: add
&to prevent blocking
Collateral Fixes Applied During Investigation
These were necessary fixes discovered during investigation but were not the root cause:
# User was not in input group (needed for device access)
sudo usermod -aG input evanusmodestus
# openrazer udev rule overrides input group on Razer devices
sudo tee /etc/udev/rules.d/99-openrazer-input-fix.rules << 'EOF'
SUBSYSTEM=="input", ATTRS{idVendor}=="1532", GROUP="input", MODE="0660"
EOF
Diagnostic Commands Reference
# === FIRST: Does the sourced file exist? ===
ls -la ~/.config/hypr/env-gpu.conf
cat ~/.config/hypr/env-gpu.conf | head -3
# === Is ~/.config/hypr a real dir or stow symlink? ===
ls -ld ~/.config/hypr
file ~/.config/hypr
# === What did git change in the hyprland package? ===
git -C ~/atelier/_projects/personal/dots-quantum diff <good-commit>..HEAD -- hyprland/
# === What is the stow package state? ===
ls -la ~/atelier/_projects/personal/dots-quantum/hyprland/.config/hypr/
# === Does Hyprland see keyboards? ===
export HYPRLAND_INSTANCE_SIGNATURE=$(ls /run/user/1000/hypr/ | sort | tail -1)
hyprctl devices | grep -A5 keyboard
# === GPU env vars in compositor process ===
cat /proc/$(pgrep -o Hyprland)/environ | tr '\0' '\n' | grep -E 'GBM|GLX|LIBVA|PRIME|WLR'
# === Hyprland source errors ===
# Visible in startup output or hyprland.log:
# "source= globbing error: found no match"
# === Device permissions ===
ls -la /dev/input/event*
stat -c "%G" /dev/input/event{4,5,6}