Files
dots/gui/.config/fish/conf.d/00-hypr-config.fish
T

33 lines
1.9 KiB
Fish

## gui package — pin which config Hyprland starts with.
##
## Points HYPRLAND_CONFIG at HyDE's Lua entry point, explicitly. The Lua chain
## loads HyDE's lua/ modules and then the user override
## ~/.config/hypr/hyprland.lua (repo: gui/.config/hypr/hyprland.lua, which pulls
## in the per-host host.lua). None of the old hyprlang .conf files are read in
## Lua mode. See LUA-PORT.md.
##
## Why it is set from *fish* of all places: HyDE's untracked
## ~/.config/fish/conf.d/hyde.fish 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 lives in gui/.config/uwsm/env-hyprland.d/10-dots.sh and covers
## the `hyprland-uwsm.desktop` session entry. Both are needed; neither is
## sufficient alone. Keeping the pins alive (instead of trusting HyDE's default)
## preserves the invariant that the dots repo decides the config, and makes any
## rollback a one-line edit. Takes effect at session start — relogin, not
## `hyprctl reload`.
##
## ROLLBACK to hyprlang (the chain was retired at LUA-PORT.md step 8,
## 2026-09-10): restore gui/.config/hypr, wm/.config/hypr, lw/.config/hypr and
## gui/.local/share/hyde from bddbbf3 (the last pre-step-8 commit), ./install.sh, point both
## pins back at "$HOME/.config/hypr/hyprland.conf" and relogin. d851213 is the
## last hyprlang `main` (the port merged 2026-11-09).
set -l hypr_data "$XDG_DATA_HOME"
test -n "$hypr_data"; or set hypr_data "$HOME/.local/share"
set -gx HYPRLAND_CONFIG "$hypr_data/hypr/hyde.lua"