fix: use niri include instead of copying system config to user dir
Update PKGBUILD version / update-pkgver (push) Successful in 2s
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:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user