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
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:
parent
a360d12bde
commit
9bc753e092
@ -205,7 +205,7 @@ All system configs live in `/etc/xdg/` and can be overridden per-user in `~/.con
|
|||||||
|
|
||||||
| Component | System Default | User Override |
|
| 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/` |
|
| Waybar | `/etc/xdg/waybar/` | `~/.config/waybar/` |
|
||||||
| Walker | `/etc/xdg/walker/` | `~/.config/walker/` |
|
| Walker | `/etc/xdg/walker/` | `~/.config/walker/` |
|
||||||
| Foot | `/etc/xdg/foot/foot.ini` | `~/.config/foot/foot.ini` |
|
| Foot | `/etc/xdg/foot/foot.ini` | `~/.config/foot/foot.ini` |
|
||||||
|
|||||||
@ -303,12 +303,29 @@ for src_dir in /etc/xdg/*/; do
|
|||||||
[[ "$app_name" == "gtk-4.0" ]] && continue
|
[[ "$app_name" == "gtk-4.0" ]] && continue
|
||||||
# kanshi profiles are user-specific (display setup) — only seed, never overwrite
|
# kanshi profiles are user-specific (display setup) — only seed, never overwrite
|
||||||
[[ "$app_name" == "kanshi" ]] && [[ -d "$HOME/.config/kanshi" ]] && continue
|
[[ "$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"
|
dest_dir="$HOME/.config/$app_name"
|
||||||
rm -rf "$dest_dir" 2>/dev/null || sudo rm -rf "$dest_dir"
|
rm -rf "$dest_dir" 2>/dev/null || sudo rm -rf "$dest_dir"
|
||||||
cp -r --no-preserve=ownership "$src_dir" "$dest_dir"
|
cp -r --no-preserve=ownership "$src_dir" "$dest_dir"
|
||||||
log " + $app_name/"
|
log " + $app_name/"
|
||||||
done
|
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
|
# Overwrite configs owned by other packages with moonarch versions
|
||||||
log "Deploying moonarch config overrides..."
|
log "Deploying moonarch config overrides..."
|
||||||
cp /usr/share/moonarch/walker-config.toml "$HOME/.config/walker/config.toml"
|
cp /usr/share/moonarch/walker-config.toml "$HOME/.config/walker/config.toml"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user