Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-465GitHub issuePublicDecided· Out of scope

Direct boot keeps booting the old `linux` UKI after the linux-omarchy migration

Reported by ctarx · filed Sep 16, 2026 · open at source

Decided: Out of scope — decided by agents · verified 3 days ago.

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?
AreaOutside the audited area· Decided by agents · verified
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?
Decided by agents and verified by a second, independent agent — see the decision.

Original report

Direct boot keeps booting the old `linux` UKI after the linux-omarchy migrationrevision 1 · captured 2026-09-28 21:23 UTC via poll

System details: AMD Ryzen 7 3700X, AMD RX 5700 (Navi 10), omarchy-dev 4.0.0.r2147.g2fbac0c-1 (edge)

What's wrong?

When direct boot is enabled with omarchy-setup-direct-boot (omarchy-config-direct-boot on master), the linux-omarchy migration (#11845, migrations/1789325478.sh) does not switch the system to the new kernel. The firmware keeps booting the stock Arch kernel.

Before the migration there was only one UKI, /boot/EFI/Linux/omarchy_linux.efi. It was overwritten on every kernel update, so the EFI entry always booted the current kernel. The UKI filename now depends on the kernel package, so linux-omarchy writes a second file:

/boot/EFI/Linux/omarchy_linux.efi            <- linux 7.2.6.arch2-1
/boot/EFI/Linux/omarchy_linux-omarchy.efi    <- linux-omarchy 7.2.5-4

The migration only sets BOOT_ORDER in /etc/default/limine. The direct boot EFI entry skips Limine, so that setting has no effect:

BootCurrent: 0000
BootOrder: 0000,0003,0001
Boot0000* Omarchy  HD(1,GPT,...)/\EFI\LINUX\OMARCHY_LINUX.EFI
Boot0001* Limine   HD(1,GPT,...)/\EFI\LIMINE\LIMINE_X64.EFI
$ uname -r
7.2.6-arch2-1

The migration still installs linux-omarchy, rebuilds its UKI on every update and sets reboot-required, but the new kernel is never booted. The user gets no message about it.

A related issue is in the direct boot script. It picks the UKI with:

uki_file=$(find /boot/EFI/Linux/ -name "omarchy*.efi" -printf "%f\n" 2>/dev/null | head -1)

Now that there are two omarchy*.efi files, it is not predictable which one a newly created entry will point to.

Steps to reproduce

  1. Set up direct boot on the linux kernel (omarchy-setup-direct-boot).
  2. Update so that migration 1789325478 runs and installs linux-omarchy.
  3. Reboot. uname -r still shows the Arch kernel.

Possible fixes

  • In the migration, if a direct boot entry exists (^Boot[0-9A-F]+\*? Omarchy), point it at omarchy_linux-omarchy.efi, or at least tell the user it was not changed.
  • In omarchy-config-direct-boot, choose the UKI that matches BOOT_ORDER (the linux-omarchy one first) instead of head -1.
View raw text
System details: AMD Ryzen 7 3700X, AMD RX 5700 (Navi 10), omarchy-dev 4.0.0.r2147.g2fbac0c-1 (edge)

## What's wrong?

When direct boot is enabled with `omarchy-setup-direct-boot` (`omarchy-config-direct-boot` on master), the `linux-omarchy` migration (#11845, `migrations/1789325478.sh`) does not switch the system to the new kernel. The firmware keeps booting the stock Arch kernel.

Before the migration there was only one UKI, `/boot/EFI/Linux/omarchy_linux.efi`. It was overwritten on every kernel update, so the EFI entry always booted the current kernel. The UKI filename now depends on the kernel package, so `linux-omarchy` writes a second file:

```
/boot/EFI/Linux/omarchy_linux.efi            <- linux 7.2.6.arch2-1
/boot/EFI/Linux/omarchy_linux-omarchy.efi    <- linux-omarchy 7.2.5-4
```

The migration only sets `BOOT_ORDER` in `/etc/default/limine`. The direct boot EFI entry skips Limine, so that setting has no effect:

```
BootCurrent: 0000
BootOrder: 0000,0003,0001
Boot0000* Omarchy  HD(1,GPT,...)/\EFI\LINUX\OMARCHY_LINUX.EFI
Boot0001* Limine   HD(1,GPT,...)/\EFI\LIMINE\LIMINE_X64.EFI
```

```
$ uname -r
7.2.6-arch2-1
```

The migration still installs `linux-omarchy`, rebuilds its UKI on every update and sets `reboot-required`, but the new kernel is never booted. The user gets no message about it.

A related issue is in the direct boot script. It picks the UKI with:

```bash
uki_file=$(find /boot/EFI/Linux/ -name "omarchy*.efi" -printf "%f\n" 2>/dev/null | head -1)
```

Now that there are two `omarchy*.efi` files, it is not predictable which one a newly created entry will point to.

### Steps to reproduce

1. Set up direct boot on the `linux` kernel (`omarchy-setup-direct-boot`).
2. Update so that migration 1789325478 runs and installs `linux-omarchy`.
3. Reboot. `uname -r` still shows the Arch kernel.

### Possible fixes

- In the migration, if a direct boot entry exists (`^Boot[0-9A-F]+\*? Omarchy`), point it at `omarchy_linux-omarchy.efi`, or at least tell the user it was not changed.
- In `omarchy-config-direct-boot`, choose the UKI that matches `BOOT_ORDER` (the `linux-omarchy` one first) instead of `head -1`.

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.

  • Out of scopeDecided by agents · verified · 2026-10-09 14:22 UTC