Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
omarchy update always prompts 'kernel has been updated, reboot?' on aarch64 (pacman -Qo can't resolve vmlinuz owner)
Reported by rafaelguariento · filed Sep 18, 2026Closed upstream on 2026-09-27 by its own reporter rafaelguariento. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- Not yet mapped to any requirement or component.
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.
Original report
What happened
On an aarch64 (Arch Linux ARM) Omarchy install, omarchy update prompts "Linux kernel has been updated. Reboot?" on every single run, even immediately after a fresh reboot with no kernel package changes at all.
What was expected
The reboot prompt should only appear when the kernel actually changed since the last boot.
Root cause
omarchy-update-restart detects a kernel update like this:
running_kernel=$(uname -r)
kernel_updated=true
for kernel in /usr/lib/modules/*/vmlinuz; do
if [[ -f $kernel ]] && pacman -Qo "$kernel" &>/dev/null; then
installed_kernel=$(basename "$(dirname "$kernel")")
if [[ $installed_kernel == $running_kernel ]]; then
kernel_updated=false
break
fi
fi
doneIt only clears kernel_updated if pacman -Qo "$kernel" succeeds. On aarch64, /usr/lib/modules/<ver>/vmlinuz is not written by the linux-aarch64 package itself — it's written post-transaction by the linux-aarch64-pkgbase-shim package's ALPM hook (85-linux-aarch64-pkgbase-shim.hook → /usr/share/libalpm/scripts/linux-aarch64-pkgbase-shim), whose own description is:
Writes usr/lib/modules/<ver>/{pkgbase,vmlinuz} for Arch Linux ARM kernels so mkinitcpio and Limine hooks find them
Because that file is written by a script rather than tracked in linux-aarch64's (or the shim's) file list, pacman -Qo always fails:
$ pacman -Qo /usr/lib/modules/7.2.6-1-aarch64-ARCH/vmlinuz
error: No package owns /usr/lib/modules/7.2.6-1-aarch64-ARCH/vmlinuzso the loop never reaches kernel_updated=false, and the script always falls through to the reboot prompt — regardless of whether a kernel update actually happened.
Steps to reproduce
- Install Omarchy on aarch64 (Arch Linux ARM) hardware.
- Run
omarchy update. - Reboot when prompted.
- Run
omarchy updateagain with no kernel package changes pending. - It still prompts "Linux kernel has been updated. Reboot?"
System details
- Omarchy version:
4.0.0.r2120.g66a33c3-1 uname -a:Linux omarchy 7.2.6-1-aarch64-ARCH #1 SMP PREEMPT_DYNAMIC Mon Sep 14 19:31:34 UTC 2026 aarch64 GNU/Linux- Architecture: arm64 (Dell Inspiron 14 Plus 7441 / Snapdragon aarch64 laptop)
linux-aarch647.2.6-1linux-aarch64-pkgbase-shim1-3- Bootloader: Limine (UEFI, systemd-boot-style
bootctl statusreporting via Limine's shim)
Suggested fix direction
omarchy-update-restart's kernel-detection should not depend on pacman -Qo resolving vmlinuz. Options:
- On aarch64, also accept ownership via linux-aarch64-pkgbase-shim (or drop the pacman -Qo ownership check entirely and just compare installed_kernel == running_kernel for any vmlinuz found under /usr/lib/modules/*/).
- Or compare kernel versions semantically (e.g. via pkgbase/modules.builtin.modinfo or pacman -Q linux-aarch64 version) rather than requiring file ownership resolution.
Diagnostics gathered:
$ pacman -Qi linux-aarch64-pkgbase-shim
Name : linux-aarch64-pkgbase-shim
Version : 1-3
Description : Writes usr/lib/modules/<ver>/{pkgbase,vmlinuz} for Arch Linux ARM kernels so mkinitcpio and Limine hooks find them
URL : https://github.com/omacom/omarchy-pkgs
$ cat /usr/share/libalpm/hooks/85-linux-aarch64-pkgbase-shim.hook
[Trigger]
Type = Path
Operation = Install
Operation = Upgrade
Operation = Remove
Target = usr/lib/modules/*/
[Trigger]
Type = Package
Operation = Install
Operation = Upgrade
Target = linux-aarch64-pkgbase-shim
[Action]
Description = Writing pkgbase and vmlinuz for Arch Linux ARM kernels...
When = PostTransaction
Exec = /usr/share/libalpm/scripts/linux-aarch64-pkgbase-shim
NeedsTargetsView raw text
### What happened
On an aarch64 (Arch Linux ARM) Omarchy install, `omarchy update` prompts "Linux kernel has been updated. Reboot?" on **every single run**, even immediately after a fresh reboot with no kernel package changes at all.
### What was expected
The reboot prompt should only appear when the kernel actually changed since the last boot.
### Root cause
`omarchy-update-restart` detects a kernel update like this:
```bash
running_kernel=$(uname -r)
kernel_updated=true
for kernel in /usr/lib/modules/*/vmlinuz; do
if [[ -f $kernel ]] && pacman -Qo "$kernel" &>/dev/null; then
installed_kernel=$(basename "$(dirname "$kernel")")
if [[ $installed_kernel == $running_kernel ]]; then
kernel_updated=false
break
fi
fi
done
```
It only clears `kernel_updated` if `pacman -Qo "$kernel"` succeeds. On aarch64, `/usr/lib/modules/<ver>/vmlinuz` is **not** written by the `linux-aarch64` package itself — it's written post-transaction by the `linux-aarch64-pkgbase-shim` package's ALPM hook (`85-linux-aarch64-pkgbase-shim.hook` → `/usr/share/libalpm/scripts/linux-aarch64-pkgbase-shim`), whose own description is:
> Writes usr/lib/modules/<ver>/{pkgbase,vmlinuz} for Arch Linux ARM kernels so mkinitcpio and Limine hooks find them
Because that file is written by a script rather than tracked in `linux-aarch64`'s (or the shim's) file list, `pacman -Qo` always fails:
```
$ pacman -Qo /usr/lib/modules/7.2.6-1-aarch64-ARCH/vmlinuz
error: No package owns /usr/lib/modules/7.2.6-1-aarch64-ARCH/vmlinuz
```
so the loop never reaches `kernel_updated=false`, and the script always falls through to the reboot prompt — regardless of whether a kernel update actually happened.
### Steps to reproduce
1. Install Omarchy on aarch64 (Arch Linux ARM) hardware.
2. Run `omarchy update`.
3. Reboot when prompted.
4. Run `omarchy update` again with no kernel package changes pending.
5. It still prompts "Linux kernel has been updated. Reboot?"
### System details
- Omarchy version: `4.0.0.r2120.g66a33c3-1`
- `uname -a`: `Linux omarchy 7.2.6-1-aarch64-ARCH #1 SMP PREEMPT_DYNAMIC Mon Sep 14 19:31:34 UTC 2026 aarch64 GNU/Linux`
- Architecture: arm64 (Dell Inspiron 14 Plus 7441 / Snapdragon aarch64 laptop)
- `linux-aarch64` 7.2.6-1
- `linux-aarch64-pkgbase-shim` 1-3
- Bootloader: Limine (UEFI, systemd-boot-style `bootctl status` reporting via Limine's shim)
### Suggested fix direction
`omarchy-update-restart`'s kernel-detection should not depend on `pacman -Qo` resolving `vmlinuz`. Options:
- On aarch64, also accept ownership via `linux-aarch64-pkgbase-shim` (or drop the `pacman -Qo` ownership check entirely and just compare `installed_kernel == running_kernel` for any `vmlinuz` found under `/usr/lib/modules/*/`).
- Or compare kernel *versions* semantically (e.g. via `pkgbase`/`modules.builtin.modinfo` or `pacman -Q linux-aarch64` version) rather than requiring file ownership resolution.
Diagnostics gathered:
```
$ pacman -Qi linux-aarch64-pkgbase-shim
Name : linux-aarch64-pkgbase-shim
Version : 1-3
Description : Writes usr/lib/modules/<ver>/{pkgbase,vmlinuz} for Arch Linux ARM kernels so mkinitcpio and Limine hooks find them
URL : https://github.com/omacom/omarchy-pkgs
$ cat /usr/share/libalpm/hooks/85-linux-aarch64-pkgbase-shim.hook
[Trigger]
Type = Path
Operation = Install
Operation = Upgrade
Operation = Remove
Target = usr/lib/modules/*/
[Trigger]
Type = Package
Operation = Install
Operation = Upgrade
Target = linux-aarch64-pkgbase-shim
[Action]
Description = Writing pkgbase and vmlinuz for Arch Linux ARM kernels...
When = PostTransaction
Exec = /usr/share/libalpm/scripts/linux-aarch64-pkgbase-shim
NeedsTargets
```
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
No decision has been recorded yet.