# 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.
> **Short answer:** 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.
- Applies to Omarchy: 4.0.0 and later
- Status: workaround
- Last verified: 2026-09-16
- Canonical: https://omarchylinux.org/fix/pacnew-and-pacsave-files-after-update/
_Unofficial community page. Not affiliated with 37signals or the Omacom Foundation. Omarchy is a registered trademark of 37signals LLC._

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

1. List what you have. `pacman-contrib` is in `install/omarchy-base.packages`, so
   `pacdiff` is already installed:

   ```bash
   sudo find /etc /boot /usr/share -name '*.pacnew' -o -name '*.pacsave' 2>/dev/null
   ```

   For an interactive pass, use `pacdiff`, which walks each pair and lets you
   view, merge, skip, or remove:

   ```bash
   sudo DIFFPROG='nvim -d' pacdiff
   ```

2. Handle `/etc/pacman.conf.pacnew` first, and do not blindly copy it over.
   Omarchy replaces this file with its own, which carries the `[omarchy]` repo
   pointing at `https://pkgs.omarchy.org/<channel>/$arch`. The `.pacnew` comes
   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:

   ```bash
   omarchy-refresh-pacman stable   # or rc, or edge
   ```

   That backs up your current file to `/etc/pacman.conf.bak`, swaps in both
   `pacman.conf` and `/etc/pacman.d/mirrorlist` for the channel, then runs a
   full `pacman -Syyuu`.

3. Handle `/etc/mkinitcpio.conf.d/omarchy_hooks.conf.pacnew` next. This is the
   one that can cost you a boot. The file is owned by `omarchy-settings` and it
   reassigns `HOOKS` wholesale 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:

   ```bash
   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
   `.efi` file rather than as a standalone image. The file is named
   `omarchy_<kernel>.efi`, so check `omarchy_linux.efi` or
   `omarchy_linux-lts.efi` too if you still boot those. Reading the hook list
   straight out of the `.efi` is how the thread on #6876 proved the `lvm2` and
   `sd-encrypt` hooks had vanished.

4. Handle `/etc/limine-entry-tool.d/omarchy-defaults.conf.pacnew`. Leaving this
   one is fine. Migration `1789325478` in 4.0.4 writes `BOOT_ORDER` into
   `/etc/default/limine`, which has priority over every drop-in, and Omarchy's
   own test asserts that the `.pacnew` is left untouched for the administrator to
   merge. Merge any non-`BOOT_ORDER` settings you care about, or delete it.

5. Handle the rest. For anything else, diff it, take what you want, and remove
   the leftover:

   ```bash
   sudo rm /etc/some/file.pacnew
   ```

6. Delete `.pacsave` files once you have read them. They belong to packages that
   are gone. Migration `1788009111` removes `cups-browsed`, for example, and
   Omarchy's acceptance test asserts that neither
   `/etc/cups/cups-browsed.conf.pacsave` nor the matching `.pacnew` is left
   behind.

## Verify it worked

- The `find` command above returns nothing.
- `pacman -Sl omarchy | head -n 1` prints a package, which proves you did not
  lose the `[omarchy]` repo while merging `pacman.conf`.
- If you touched anything under `/etc/mkinitcpio.conf.d/`, the `Hook run order`
  line lists every hook your root needs, especially `encrypt` or `sd-encrypt`,
  and `lvm2`, `mdadm_udev`, or `resume` if 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/](/upgrade/rollback-with-snapper-and-limine/)
  and [/fix/you-are-in-emergency-mode-after-update/](/fix/you-are-in-emergency-mode-after-update/).
- The same `.pacnew` returns 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 for `mkinitcpio.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 update` runs `omarchy-hook post-update`
  after migrations, so a script at
  `~/.config/omarchy/hooks/post-update.d/pacnew-check` that runs the `find`
  command above will print leftovers at the end of every update. Install it with
  `omarchy 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/](/fix/errors-occurred-no-packages-were-upgraded/).

## Related

- [/upgrade/what-migrations-do/](/upgrade/what-migrations-do/)
- [/upgrade/before-you-update-checklist/](/upgrade/before-you-update-checklist/)
- [/upgrade/3-to-4-quattro/](/upgrade/3-to-4-quattro/)
- [/fix/migration-failed-mid-update/](/fix/migration-failed-mid-update/)
- [/fix/kernel-panic-after-update-limine/](/fix/kernel-panic-after-update-limine/)
- [/reference/commands/omarchy-refresh-pacman/](/reference/commands/omarchy-refresh-pacman/)
- Official manual chapter: [Updates](https://omarchy.org/manual/updates/)

## Sources

- [docs/update-process.md at v4.0.4 (Remaining concerns: pacnew/pacsave handling is still missing)](https://github.com/omacom/omarchy/blob/v4.0.4/docs/update-process.md)
- [docs/file-layout.md at v4.0.4 (Why etc-overrides/ exists)](https://github.com/omacom/omarchy/blob/v4.0.4/docs/file-layout.md)
- [Migration 1786605598: rebuild the initramfs, skipping a user-edited omarchy_hooks.conf](https://github.com/omacom/omarchy/blob/v4.0.4/migrations/1786605598.sh)
- [Issue #6876: omarchy_hooks.conf replaces HOOKS instead of extending it, dropping lvm2/resume and leaving LVM-on-LUKS roots unbootable](https://github.com/omacom/omarchy/issues/6876)
- [Issue #619: Add way to lock a config so Omarchy won't ever auto-update it](https://github.com/omacom/omarchy/issues/619)
- [PR #887: Improve config updates with baseline tracking and safe diffs](https://github.com/omacom/omarchy/pull/887)
- [Omarchy manual: Updates](https://omarchy.org/manual/updates/)
