fix: use niri include instead of copying system config to user dir
All checks were successful
Update PKGBUILD version / update-pkgver (push) Successful in 2s

transform.sh was hard-copying /etc/xdg/niri/config.kdl to ~/.config/niri/,
causing the user config to go stale after system updates. Now seeds a minimal
user config with `include "/etc/xdg/niri/config.kdl"` so system defaults
always stay current and users can add overrides below the include.
This commit is contained in:
nevaforget 2026-04-11 21:03:42 +02:00
parent a360d12bde
commit 9bc753e092
2 changed files with 18 additions and 1 deletions

View File

@ -205,7 +205,7 @@ All system configs live in `/etc/xdg/` and can be overridden per-user in `~/.con
| Component | System Default | User Override |
|-----------|---------------|---------------|
| Niri | `/etc/xdg/niri/config.kdl` | `~/.config/niri/config.kdl` |
| Niri | `/etc/xdg/niri/config.kdl` | `~/.config/niri/config.kdl` (includes system config) |
| Waybar | `/etc/xdg/waybar/` | `~/.config/waybar/` |
| Walker | `/etc/xdg/walker/` | `~/.config/walker/` |
| Foot | `/etc/xdg/foot/foot.ini` | `~/.config/foot/foot.ini` |

View File

@ -303,12 +303,29 @@ for src_dir in /etc/xdg/*/; do
[[ "$app_name" == "gtk-4.0" ]] && continue
# kanshi profiles are user-specific (display setup) — only seed, never overwrite
[[ "$app_name" == "kanshi" ]] && [[ -d "$HOME/.config/kanshi" ]] && continue
# niri user config includes system config — never overwrite (handled below)
[[ "$app_name" == "niri" ]] && continue
dest_dir="$HOME/.config/$app_name"
rm -rf "$dest_dir" 2>/dev/null || sudo rm -rf "$dest_dir"
cp -r --no-preserve=ownership "$src_dir" "$dest_dir"
log " + $app_name/"
done
# Niri: seed user config with include of system config (preserves user overrides)
niri_user_config="$HOME/.config/niri/config.kdl"
if [[ ! -f "$niri_user_config" ]]; then
mkdir -p "$HOME/.config/niri"
cat > "$niri_user_config" << 'NIRI_EOF'
// ABOUTME: Moonarch user niri config — includes system defaults.
// ABOUTME: Add personal overrides below the include statement.
include "/etc/xdg/niri/config.kdl"
NIRI_EOF
log " + niri/ (seeded with include)"
else
log " ~ niri/ (user config exists, skipped)"
fi
# Overwrite configs owned by other packages with moonarch versions
log "Deploying moonarch config overrides..."
cp /usr/share/moonarch/walker-config.toml "$HOME/.config/walker/config.toml"