## gui package — pin which config Hyprland starts with. ## ## HyDE 26.x configures Hyprland in Lua and points HYPRLAND_CONFIG at ## ~/.local/share/hypr/hyde.lua. Once that is set, Hyprland never reads ## ~/.config/hypr/hyprland.conf, so the entire dots hypr layer (theme, keybinds, ## window rules, monitors, userprefs) is bypassed and the session comes up as ## stock HyDE — silently, with `hyprctl configerrors` empty. ## ## Why it is set from *fish* of all places: the update dropped a real ## ~/.config/fish/conf.d/hyde.fish (untracked, HyDE-owned) which exports it, and ## fish sources every conf.d/*.fish at startup. SDDM launches the session through ## the login shell (/usr/bin/start-hyprland, the `hyprland.desktop` entry — not ## `hyprland-uwsm.desktop`), so the compositor inherits whatever fish exported. ## HyDE's snippet only assigns `if test -z "$HYPRLAND_CONFIG"`, and conf.d files ## load in alphabetical order, so this file's `00-` prefix means ours is already ## set by the time hyde.fish looks — do not rename it above `hyde.fish`. ## ## The uwsm twin of this lives in gui/.config/uwsm/env-hyprland.d/10-dots.sh and ## covers the `hyprland-uwsm.desktop` session entry, which sources uwsm env files ## instead of the shell. Both are needed; neither is sufficient alone. ## ## STOPGAP: this pins ~/.local/share/hyde/hyprland.conf, which current HyDE no ## longer ships (ours is a leftover of the pre-update install). The supported ## path is porting the hypr layer to ~/.config/hypr/hyprland.lua. See ## HYDE-UPDATE.md. Takes effect at session start — relogin, not `hyprctl reload`. set -gx HYPRLAND_CONFIG "$HOME/.config/hypr/hyprland.conf"