From 844859a000a5ef7e1349c52e3927d4ececbfb681 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 19 Jul 2026 21:28:23 -0700 Subject: [PATCH] Always overwrite unowned strays under /usr/share/omarchy on update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tree is wholly package-owned, but files can land there unowned (in-place extension work, script-written files), and pacman then aborts the entire upgrade on the file conflict — as happened when copy-url's service worker was renamed to background-2.js. The conflict check runs before any hooks or scriptlets, so the package itself can't recover; the update command has to allow the overwrite. Co-Authored-By: Claude Fable 5 --- bin/omarchy-update-system-pkgs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-update-system-pkgs b/bin/omarchy-update-system-pkgs index 9e47a0f8..ac12a999 100755 --- a/bin/omarchy-update-system-pkgs +++ b/bin/omarchy-update-system-pkgs @@ -10,6 +10,11 @@ echo -e "\e[32m\nUpdate system packages\e[0m" # Transition --overwrite: previous script-installed Omarchy wrote these paths # as unowned files; pacman would refuse the omarchy-settings upgrade on first # encounter. Drop each entry once the transition release is the baseline. +# +# The /usr/share/omarchy/* entry is permanent: that tree is wholly owned by +# the omarchy packages, but files can land there unowned (in-place extension +# work, script-written files), which would abort the whole upgrade. Packaged +# content always wins there. sudo env OMARCHY_UPDATE_PACMAN=1 pacman -Syu --noconfirm \ --overwrite '/etc/docker/daemon.json' \ --overwrite '/etc/gnupg/dirmngr.conf' \ @@ -35,4 +40,5 @@ sudo env OMARCHY_UPDATE_PACMAN=1 pacman -Syu --noconfirm \ --overwrite '/usr/lib/systemd/system-sleep/unmount-fuse' \ --overwrite '/usr/share/plymouth/themes/omarchy/*' \ --overwrite '/usr/share/sddm/hyprland.lua' \ - --overwrite '/usr/share/sddm/themes/omarchy/*' + --overwrite '/usr/share/sddm/themes/omarchy/*' \ + --overwrite '/usr/share/omarchy/*'