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-483GitHub issuePublicFixed

hibernation remove leaves resume kernel parameters in the UKI (Limine drop-in not removed)

Reported by maandrij · filed Sep 16, 2026Closed upstream on 2026-10-12 by the bot omarchybot, as a duplicate (target not recorded).

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

hibernation remove leaves resume kernel parameters in the UKI (Limine drop-in not removed)revision 1 · captured 2026-09-28 21:23 UTC via poll

Summary

omarchy hibernation setup writes the resume kernel parameters to /etc/limine-entry-tool.d/resume.conf (and, on s2idle systems, /etc/limine-entry-tool.d/rtc-alarm.conf), but omarchy hibernation remove never deletes those drop-ins. It only removes the mkinitcpio hook (/etc/mkinitcpio.conf.d/omarchy_resume.conf) and then runs limine-mkinitcpio.

As a result, after removal the rebuilt UKI still embeds resume=/dev/mapper/root resume_offset=…, pointing at a swapfile that no longer exists. The kernel can't find a resume image and falls through to a normal boot, but the boot configuration is left stale — remove is not symmetric with setup.

Steps to reproduce

  1. omarchy hibernation setup
  2. Confirm both drop-ins exist:
  • /etc/mkinitcpio.conf.d/omarchy_resume.conf
  • /etc/limine-entry-tool.d/resume.conf (contains resume= / resume_offset=)
  1. omarchy hibernation remove
  2. /etc/limine-entry-tool.d/resume.conf is still present, and the rebuilt UKI still contains the resume parameters:
   objcopy -O binary --only-section=.cmdline /boot/EFI/Linux/omarchy_linux.efi /dev/stdout | tr -d '\0'
   # ... still shows resume=/dev/mapper/root resume_offset=...

Expected

omarchy hibernation remove should remove the Limine drop-ins that setup created, before rebuilding the boot image — mirroring what setup does. Something like:

sudo rm -f /etc/limine-entry-tool.d/resume.conf
sudo rm -f /etc/limine-entry-tool.d/rtc-alarm.conf

next to the existing removal of /etc/mkinitcpio.conf.d/omarchy_resume.conf, followed by the usual limine-mkinitcpio.

Relevant code

  • omarchy-hibernation-setup defines RESUME_DROP_IN="/etc/limine-entry-tool.d/resume.conf" and writes it; it also writes /etc/limine-entry-tool.d/rtc-alarm.conf when /sys/power/mem_sleep contains [s2idle].
  • omarchy-hibernation-remove only references MKINITCPIO_CONF (/etc/mkinitcpio.conf.d/omarchy_resume.conf) and never touches /etc/limine-entry-tool.d/.

Environment

  • Omarchy 4.0.3-1
  • limine 12.8.0-1, limine-mkinitcpio-hook 1.38.0-1.1
  • Kernel 7.2.3-arch1-3
  • Root on btrfs over LUKS, UKI built via limine-entry-tool
View raw text
## Summary

`omarchy hibernation setup` writes the resume kernel parameters to `/etc/limine-entry-tool.d/resume.conf` (and, on s2idle systems, `/etc/limine-entry-tool.d/rtc-alarm.conf`), but `omarchy hibernation remove` never deletes those drop-ins. It only removes the mkinitcpio hook (`/etc/mkinitcpio.conf.d/omarchy_resume.conf`) and then runs `limine-mkinitcpio`.

As a result, after removal the rebuilt UKI still embeds `resume=/dev/mapper/root resume_offset=…`, pointing at a swapfile that no longer exists. The kernel can't find a resume image and falls through to a normal boot, but the boot configuration is left stale — `remove` is not symmetric with `setup`.

## Steps to reproduce

1. `omarchy hibernation setup`
2. Confirm both drop-ins exist:
   - `/etc/mkinitcpio.conf.d/omarchy_resume.conf`
   - `/etc/limine-entry-tool.d/resume.conf` (contains `resume=` / `resume_offset=`)
3. `omarchy hibernation remove`
4. `/etc/limine-entry-tool.d/resume.conf` is still present, and the rebuilt UKI still contains the resume parameters:

   ```
   objcopy -O binary --only-section=.cmdline /boot/EFI/Linux/omarchy_linux.efi /dev/stdout | tr -d '\0'
   # ... still shows resume=/dev/mapper/root resume_offset=...
   ```

## Expected

`omarchy hibernation remove` should remove the Limine drop-ins that `setup` created, before rebuilding the boot image — mirroring what `setup` does. Something like:

```
sudo rm -f /etc/limine-entry-tool.d/resume.conf
sudo rm -f /etc/limine-entry-tool.d/rtc-alarm.conf
```

next to the existing removal of `/etc/mkinitcpio.conf.d/omarchy_resume.conf`, followed by the usual `limine-mkinitcpio`.

## Relevant code

- `omarchy-hibernation-setup` defines `RESUME_DROP_IN="/etc/limine-entry-tool.d/resume.conf"` and writes it; it also writes `/etc/limine-entry-tool.d/rtc-alarm.conf` when `/sys/power/mem_sleep` contains `[s2idle]`.
- `omarchy-hibernation-remove` only references `MKINITCPIO_CONF` (`/etc/mkinitcpio.conf.d/omarchy_resume.conf`) and never touches `/etc/limine-entry-tool.d/`.

## Environment

- Omarchy 4.0.3-1
- `limine` 12.8.0-1, `limine-mkinitcpio-hook` 1.38.0-1.1
- Kernel 7.2.3-arch1-3
- Root on btrfs over LUKS, UKI built via `limine-entry-tool`

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

  • Fixed bypr/12155· confirmed

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:09 UTC