pacnew and pacsave files after an Omarchy update
What .pacnew and .pacsave files mean after an Omarchy update, which ones matter on Omarchy 4, and how to merge them without breaking pacman or your boot.
They are pacman's backup files, not errors. A .pacnew means a package shipped a new config but you had edited the old one, so your version was kept. Omarchy does not warn about them yet. List them with pacdiff, then merge by hand. On Omarchy only a few matter: pacman.conf, omarchy_hooks.conf, and the limine drop-ins.
Checked on 4.0.4 (2026-09-15), with the 3.x behaviour taken from the v3.8.4 tree.
A .pacnew file is pacman telling you that a package shipped a new version of a
config file you had edited, so it kept yours and saved the new one alongside. A
.pacsave is the mirror case: a package was removed and pacman preserved the
config you had. Neither is an error. Pacman prints a one line warning as it
happens, but that scrolls past in the update transcript, and as of 4.0.4
nothing in the update pipeline goes back to look for them.
The fix
-
List what you have.
pacman-contribis ininstall/omarchy-base.packages, sopacdiffis already installed:sudo find /etc /boot /usr/share -name '*.pacnew' -o -name '*.pacsave' 2>/dev/nullFor an interactive pass, use
pacdiff, which walks each pair and lets you view, merge, skip, or remove:sudo DIFFPROG='nvim -d' pacdiff -
Handle
/etc/pacman.conf.pacnewfirst, and do not blindly copy it over. Omarchy replaces this file with its own, which carries the[omarchy]repo pointing athttps://pkgs.omarchy.org/<channel>/$arch. The.pacnewcomes from upstream Arch and has none of that. Merge only the new[options]lines you want, or reset the whole file to Omarchy’s version for your channel:omarchy-refresh-pacman stable # or rc, or edgeThat backs up your current file to
/etc/pacman.conf.bak, swaps in bothpacman.confand/etc/pacman.d/mirrorlistfor the channel, then runs a fullpacman -Syyuu. -
Handle
/etc/mkinitcpio.conf.d/omarchy_hooks.conf.pacnewnext. This is the one that can cost you a boot. The file is owned byomarchy-settingsand it reassignsHOOKSwholesale rather than extending it, which is why people on LVM, mdraid, hibernation, or a systemd initramfs chain end up editing it (issue #6876). Merge the new hook list by hand, keep the hooks your root layout needs, then rebuild and inspect before rebooting:sudo limine-mkinitcpio sudo lsinitcpio -a /boot/EFI/Linux/omarchy_linux-omarchy.efi | grep -A1 'Hook run order'Omarchy enables unified kernel images by default through
/etc/limine-entry-tool.d/omarchy-uki.conf, so the initramfs lives inside the.efifile rather than as a standalone image. The file is namedomarchy_<kernel>.efi, so checkomarchy_linux.efioromarchy_linux-lts.efitoo if you still boot those. Reading the hook list straight out of the.efiis how the thread on #6876 proved thelvm2andsd-encrypthooks had vanished. -
Handle
/etc/limine-entry-tool.d/omarchy-defaults.conf.pacnew. Leaving this one is fine. Migration1789325478in 4.0.4 writesBOOT_ORDERinto/etc/default/limine, which has priority over every drop-in, and Omarchy’s own test asserts that the.pacnewis left untouched for the administrator to merge. Merge any non-BOOT_ORDERsettings you care about, or delete it. -
Handle the rest. For anything else, diff it, take what you want, and remove the leftover:
sudo rm /etc/some/file.pacnew -
Delete
.pacsavefiles once you have read them. They belong to packages that are gone. Migration1788009111removescups-browsed, for example, and Omarchy’s acceptance test asserts that neither/etc/cups/cups-browsed.conf.pacsavenor the matching.pacnewis left behind.
Verify it worked
- The
findcommand above returns nothing. pacman -Sl omarchy | head -n 1prints a package, which proves you did not lose the[omarchy]repo while mergingpacman.conf.- If you touched anything under
/etc/mkinitcpio.conf.d/, theHook run orderline lists every hook your root needs, especiallyencryptorsd-encrypt, andlvm2,mdadm_udev, orresumeif you use them. A short list missing the one your root layout depends on is the signature of issue #6876. - Reboot once after merging any boot path file, before you forget you changed it.
Why it happens
Pacman only writes a .pacnew when three things are true: the file is listed as
a backup file by its package, the package shipped a new version, and your copy
differs from the one the package previously installed. Unmodified files are
simply replaced and you never see a .pacnew.
What changed in Omarchy 4 is who owns the files. In 3.x Omarchy was a git
checkout under your home directory, so Omarchy’s own defaults were never pacman
managed and could never produce a .pacnew. Only plain Arch packages did. There
is no mention of pacnew anywhere in the v3.8.4 tree. Quattro made Omarchy
package backed: omarchy and omarchy-settings now install real files into
/etc, so your edits to them can now collide with a package upgrade the way any
other Arch config does.
Omarchy has not caught up with that yet. docs/update-process.md closes with a
section called Remaining concerns, and the second entry says pacnew and pacsave
handling is still missing, noting that package backed Omarchy should warn about
or help process these files. omarchy-update-analyze-logs, the only step that
reads the update transcript, currently checks for one thing: failed initramfs
generation.
There is a second, quieter category worth knowing about. docs/file-layout.md
explains that a few files owned by upstream Arch packages, including
/etc/nsswitch.conf, /etc/security/faillock.conf, /etc/cups/cups-browsed.conf,
/etc/plymouth/plymouthd.conf, /etc/os-release, and /etc/skel/.bashrc, ship
at /usr/share/omarchy/etc-overrides/ and are copied into place by the
omarchy-settings scriptlet. The doc states the tradeoff plainly: user edits to
those files get clobbered on every omarchy-settings upgrade. No .pacnew is
written, because pacman is not the one doing the copying.
A .pacnew also has a knock on effect on migrations. Migration 1786605598
rebuilds the initramfs to drop unused nouveau firmware, and its comment notes
that a user edited omarchy_hooks.conf, whose update landed in a .pacnew,
keeps the old hook list and correctly skips the rebuild. Merging your .pacnew
files is therefore also how you stop silently opting out of repairs.
Asking for better handling is not new. Issue #619, opened by dhh, proposed locking configs so Omarchy would not auto update them, and was closed as not planned in November 2025. PR #887 by mfontcada proposed a pacnew style baseline with safe diffs for Omarchy’s own configs, and was closed without merging.
If that did not work
- The machine will not boot after you merged a hooks file. Pick the pre update snapshot in the Limine menu and start over. See /upgrade/rollback-with-snapper-and-limine/ and /fix/you-are-in-emergency-mode-after-update/.
- The same
.pacnewreturns after every update. That is the expected outcome of editing a package owned file. Where the directory supports it, move your change into a separate drop in that sorts after Omarchy’s, rather than editing Omarchy’s file. This works formkinitcpio.conf.d,sysctl.d, and systemd drop in directories, since the last assignment wins. - You cannot remember what you changed. Compare the installed file against the
package’s copy with
pacman -Qkk <package>, or extract the original from/var/cache/pacman/pkg/. - You want a warning next time.
omarchy updaterunsomarchy-hook post-updateafter migrations, so a script at~/.config/omarchy/hooks/post-update.d/pacnew-checkthat runs thefindcommand above will print leftovers at the end of every update. Install it withomarchy hook install post-update <file>. - The update itself failed rather than leaving a
.pacnew. That is a different problem. See /fix/errors-occurred-no-packages-were-upgraded/.
Related
Upstream threads about this error
9 issues on the Omarchy tracker match this error cluster. Newest fixes often appear as comments on the most-discussed threads.
| Issue | State | Comments | Opened |
|---|---|---|---|
| #3154 3.1.5 update this morning bricked my machine | closed | 29 | 2025-11-04 |
| #619 Add way to lock a config so Omarchy won't ever auto-update it | closed | 10 | 2025-08-10 |
| #6880 SDDM greeter always uses US keyboard layout, ignoring the system layout · fixed by #6896 | closed | 4 | 2026-08-14 |
| #6169 Kernel/limine update leaves boot broken until manual `limine-mkinitcpio` rerun — encrypt hook "device not found"; suspicious duplicate signing hash across different kernel versions | open | 2 | 2026-07-05 |
| #9421 SDDM greeter's Hyprland config ignores system keyboard layout, causing password mismatches for non-US layouts | closed | 2 | 2026-08-31 |
| #6234 Default hypridle.conf: screensaver killed ~2s after launch (150s/152s), and update overwrites user-modified hypridle.conf | closed | 1 | 2026-07-18 |
| #9828 Snapper rollbacks silently un-apply Omarchy migrations (surfaced as: LUKS prompt still QWERTY after e891e5c) | open | 1 | 2026-09-02 |
| #12347 Galaxy Book6 Pro (NP960XJG): IPU7 webcam is SSLC2000/SC200PC, intel-ipu7-camera assumes OV08X40 | open | 1 | 2026-09-18 |
| #12551 omarchy-upgrade-to-quattro silently overwrites /etc/snapper/configs/root, discarding user retention settings & sometimes deleting its own snapshot | open | 0 | 2026-09-19 |
Questions people ask
- Is a .pacnew file an error?
- No. It means pacman kept your edited config and parked the package's new version next to it. Nothing is broken, but you are now running an old config that the package no longer expects.
- Can I just delete every .pacnew file?
- You can, and nothing breaks immediately. You lose whatever the package changed, which on Omarchy can mean a new hook conditional in omarchy_hooks.conf that a later migration evaluates before deciding whether to rebuild your initramfs.
- Does omarchy update tell me about them?
- Not in 4.0.4. docs/update-process.md lists pacnew and pacsave handling under Remaining concerns. The only log check omarchy-update-analyze-logs performs is for failed initramfs generation.
- Why did my config get overwritten with no .pacnew at all?
- A handful of files ship through /usr/share/omarchy/etc-overrides/ and are copied into place by a package scriptlet rather than by pacman. Those get clobbered on every omarchy-settings upgrade.
Sources and credit
Fixes on this page were worked out by alancaldas84 (Showing that omarchy_hooks.conf replaces HOOKS wholesale, which is why editing it is common and why its .pacnew matters), mfontcada (Proposing pacnew-style handling for Omarchy's own config updates in PR #887). Text here is our own paraphrase; follow the links for the original threads.
- docsdocs/update-process.md at v4.0.4 (Remaining concerns: pacnew/pacsave handling is still missing) · 2026-09-15
- docsdocs/file-layout.md at v4.0.4 (Why etc-overrides/ exists) · 2026-09-15
- commitMigration 1786605598: rebuild the initramfs, skipping a user-edited omarchy_hooks.conf · 2026-09-15
- issueIssue #6876: omarchy_hooks.conf replaces HOOKS instead of extending it, dropping lvm2/resume and leaving LVM-on-LUKS roots unbootable · alancaldas84 · 2026-08-14
- issueIssue #619: Add way to lock a config so Omarchy won't ever auto-update it · dhh · 2025-08-10
- prPR #887: Improve config updates with baseline tracking and safe diffs · mfontcada · 2025-08-18
- manualOmarchy manual: Updates · 2026-09-15