moonarch/DECISIONS.md
nevaforget a6a5a709a0 Add moonarch-update for package-based system maintenance
Simplified updater that reads package lists from /usr/share/moonarch/
instead of syncing a git repo. Designed to be shipped by the
moonarch-git package as /usr/bin/moonarch-update.
2026-03-29 17:15:07 +02:00

1.9 KiB
Raw Blame History

Decisions

2026-03-29 /opt/moonarch stays root-owned, no chown to user

  • Who: Dominik, Ragnar
  • Why: Multi-user system — chown to UID 1000 locks out other users from moonarch-update
  • Tradeoffs: sudo required for git operations in update.sh vs. simpler user-owned repo
  • How: Repo stays at /opt/moonarch owned by root:root. update.sh uses sudo git for fetch/pull. All scripts already use sudo for system-level operations, so this is consistent.

2026-03-29 Add transform.sh for existing Arch+Wayland systems

  • Who: Dominik, Ragnar
  • Why: Users with existing Arch+Wayland setups should be able to adopt Moonarch without reinstalling
  • Tradeoffs: Hard overwrite of all configs (user + system) vs. selective/merge approach — chose hard overwrite for simplicity and consistency
  • How: New transform.sh with pre-flight summary, backup, DM conflict resolution, and --dry-run flag. Shared helpers extracted to lib.sh.

2026-03-29 Package moonarch as moonarch-git PKGBUILD

  • Who: Dominik, Ragnar
  • Why: System artifacts (XDG configs, helper scripts, zsh config, wallpaper) should be managed by pacman for clean deployment, versioning, rollback, and deinstallation
  • Tradeoffs: /etc/xdg/ configs NOT in backup= (moonarch philosophy: system defaults flow through, users override in ~/.config/). /etc/greetd/ and /etc/moongreet/ NOT owned by package (owned by greetd/moongreet-git, overwritten via .install hook). Helper scripts move from /usr/local/bin/ to /usr/bin/ (FHS for package-managed files)
  • How: moonarch-git PKGBUILD in moonarch-pkgbuilds repo. sweet-cursors-git as separate package. moonarch-update simplified (no git-sync, pacman handles file deployment). Installer scripts (post-install.sh, transform.sh) remain for orchestration, will be refactored in a follow-up to delegate file deployment to paru -S moonarch-git