_apple_silicon() { [[ $(uname -m) == aarch64 ]] && grep -aq 'apple,' /proc/device-tree/compatible 2>/dev/null } _etc_overrides_apply() { echo "Applying Omarchy etc-overrides..." # The hardened CUPS authorization applies on every platform. It waits for the # file the cups package owns: an ISO bootstrap without cups installed is left # alone and picks it up once cups lands. if [[ -f /etc/cups/cups-files.conf && -f /usr/share/omarchy/etc-overrides/cups-cups-files.conf ]]; then systemd-sysusers /etc/sysusers.d/omarchy-cups-browsed.conf install -m 0640 -o root -g cups /usr/share/omarchy/etc-overrides/cups-cups-files.conf /etc/cups/cups-files.conf fi # Apple Silicon installs run on Arch Linux ARM's base with the Asahi # packages, and keep that system identity: /etc/os-release stays the # symlink to the distribution's /usr/lib/os-release, and the PAM, NSS, # plymouth and skel overrides below are not applied there. if _apple_silicon; then echo "Preserving Arch Linux ARM system configuration on Apple Silicon..." if [[ -f /usr/lib/os-release ]]; then rm -f /etc/os-release ln -s ../usr/lib/os-release /etc/os-release fi return 0 fi # Ensure parent dirs exist. cups-browsed may not be installed yet during ISO # bootstrap; do not create /etc/cups/cups-browsed.conf before the package is # installed or pacman will preserve its packaged file as a noisy .pacnew. install -d /etc/plymouth /etc/security /etc/skel # NOTE: these cp -f's are intentionally destructive on every install/upgrade. # Users who customize /etc/os-release, /etc/plymouth/plymouthd.conf (theme # switch), /etc/cups/cups-browsed.conf, /etc/cups/cups-files.conf, /etc/nsswitch.conf, # /etc/security/faillock.conf, or /etc/skel/.bashrc WILL have their changes # reset to Omarchy defaults each time omarchy-settings is upgraded. This is # the trade-off of routing upstream-owned paths through etc-overrides instead # of pacman backup=(). rm -f /etc/os-release cp -f /usr/share/omarchy/etc-overrides/os-release /etc/os-release cp -f /usr/share/omarchy/etc-overrides/security-faillock.conf /etc/security/faillock.conf cp -f /usr/share/omarchy/etc-overrides/nsswitch.conf /etc/nsswitch.conf if [[ -f /etc/cups/cups-browsed.conf ]]; then install -d /etc/cups cp -f /usr/share/omarchy/etc-overrides/cups-cups-browsed.conf /etc/cups/cups-browsed.conf fi cp -f /usr/share/omarchy/etc-overrides/plymouth-plymouthd.conf /etc/plymouth/plymouthd.conf cp -f /usr/share/omarchy/etc-overrides/dot.bashrc /etc/skel/.bashrc chmod 0644 /etc/os-release /etc/security/faillock.conf /etc/nsswitch.conf \ /etc/plymouth/plymouthd.conf /etc/skel/.bashrc if [[ -f /etc/cups/cups-browsed.conf ]]; then chmod 0644 /etc/cups/cups-browsed.conf fi } post_install() { _etc_overrides_apply } post_upgrade() { _etc_overrides_apply }