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-5132GitHub issuePublicReceived

Delete the three dead Apple Silicon keyboard-backlight migrations (they target hypridle-era files that no longer exist)

Reported by cad0p · filed Oct 4, 2026Closed upstream on 2026-10-04 by its own reporter cad0p. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.

Received and recorded verbatim. Nothing has been checked yet.

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

Delete the three dead Apple Silicon keyboard-backlight migrations (they target hypridle-era files that no longer exist)revision 1 · captured 2026-10-04 12:17 UTC via poll

System details

Omarchy-Mac quattro @ ba546a61 (github.com/omacom/omarchy-mac), Apple Silicon: M1 Pro 16" (MacBookPro18,1 / apple,j316s), 32 GB, kernel linux-aurora 7.1.12.aurora2-11.25-sep-ARCH. Keyboard backlight device /sys/class/leds/kbd_backlight (pwm-leds, max 255); omarchy-brightness-keyboard off|restore works (brightnessctl save/restore verified).

What's wrong?

Three Apple Silicon keyboard-backlight migrations are dead code on quattro: each prints its "Add …" header and then changes nothing, because every one of them guards on a file that no longer exists. They were written for the hypridle-era tree (PR #76, merged 2026-01-07) and survived the move to the Quickshell shell:

  1. migrations/1767821287.sh (idle dimming) only edits $HOME/.config/hypr/hypridle.conf — hypridle.conf was deleted in 0f504416 ("Move from hypridle to QS"), so the [ -f ] guard at L8 exits (guard, listener it would add — timeout = 330, tied to screen-off even on the old layout).
  2. migrations/1767821288.sh (lid close/open) only edits $HOME/.config/hypr/monitors.conf; quattro uses monitors.lua, and the Apple-specific lid binds live in default/hypr/bindings/utilities.lua L38-39 — omarchy-system-lid-close on close, omarchy-hyprland-monitor-clamshell on open (guard, current lid binds).
  3. migrations/1767821291.sh (hardware keys) only edits $HOME/.config/hypr/bindings/media.conf; quattro binds the same keys in default/hypr/bindings/media.lua L11-15 (guard, current binds).

Verified on ba546a61: git ls-tree -r origin/quattro | grep -E 'hypridle|monitors\.conf|media\.conf' is empty, and config/hypr/ contains only .luarc.json autostart.lua bindings.lua hyprland.lua hyprlock.conf hyprsunset.conf input.lua looknfeel.lua monitors.lua xdph.conf.

Steps to recreate:
1. On a current quattro install: ls ~/.config/hypr/hypridle.conf ~/.config/hypr/monitors.conf → "No such file or directory"; grep -r kbd_backlight ~/.config/hypr/ → no hits.
2. Run the migrations (update path): they print "Add keyboard backlight dimming on idle for Apple Silicon Macs", "Add lid close and open handling for Apple Silicon Macs", and "Add keyboard backlight hardware key bindings for Apple Silicon Macs" — nothing changes at runtime (an updater with a leftover hypridle.conf gets that stale file edited, but nothing ever reads it).

Why it matters: the files read as if the fork ships keyboard-backlight idle dimming, lid handling, and hardware-key support through these migrations. Two of the three are actually wired elsewhere (the Lua files above), and the third — idle dimming — is not shipped at all yet; it is being implemented in #340 (a first-party omarchy.keyboard-backlight service), with adjacent work in #684 and #330. Leaving the stale migrations in place also invites future "fixes" to files the runtime never reads.

Suggested fix

Delete migrations/1767821287.sh, migrations/1767821288.sh, and migrations/1767821291.sh. Their quattro equivalents already exist or are in flight:

  • idle dimming → #340's shell/plugins/services/keyboard-backlight/ (open, in review)
  • lid handling → default/hypr/bindings/utilities.lua L38-39
  • hardware keys → default/hypr/bindings/media.lua L11-15

Safe to delete: the guards can only fire against a leftover hypridle-era config file, which no longer has any effect because hypridle itself was removed — bin/omarchy-upgrade-to-quattro L824 and bin/omarchy-upgrade-to-quattro-mac L338/L345 list hypridle as part of the retired 3.x desktop stack, and no quattro config or unit reads it.

Related open items not covered by this cleanup: #683 (manual backlight keys after the platform-file drop), #260 (a keyboard-backlight settings panel).

omarchy-debug output available on request (this is a code-path gap, not a hardware fault).

Assisted-by: pi:deepseek-v4.1-flash

View raw text
### System details

Omarchy-Mac `quattro` @ ba546a61 (github.com/omacom/omarchy-mac), Apple Silicon: M1 Pro 16" (MacBookPro18,1 / apple,j316s), 32 GB, kernel linux-aurora 7.1.12.aurora2-11.25-sep-ARCH. Keyboard backlight device `/sys/class/leds/kbd_backlight` (pwm-leds, max 255); `omarchy-brightness-keyboard off|restore` works (brightnessctl save/restore verified).

### What's wrong?

Three Apple Silicon keyboard-backlight migrations are dead code on quattro: each prints its "Add …" header and then changes nothing, because every one of them guards on a file that no longer exists. They were written for the hypridle-era tree (PR #76, merged 2026-01-07) and survived the move to the Quickshell shell:

1. `migrations/1767821287.sh` (idle dimming) only edits `$HOME/.config/hypr/hypridle.conf` — hypridle.conf was deleted in 0f504416 ("Move from hypridle to QS"), so the `[ -f ]` guard at L8 exits ([guard](https://github.com/omacom/omarchy-mac/blob/ba546a61f881c1fe9d79d75ec050eab048b8cb63/migrations/1767821287.sh#L6-L8), [listener it would add](https://github.com/omacom/omarchy-mac/blob/ba546a61f881c1fe9d79d75ec050eab048b8cb63/migrations/1767821287.sh#L14-L20) — `timeout = 330`, tied to screen-off even on the old layout).
2. `migrations/1767821288.sh` (lid close/open) only edits `$HOME/.config/hypr/monitors.conf`; quattro uses `monitors.lua`, and the Apple-specific lid binds live in `default/hypr/bindings/utilities.lua` L38-39 — `omarchy-system-lid-close` on close, `omarchy-hyprland-monitor-clamshell` on open ([guard](https://github.com/omacom/omarchy-mac/blob/ba546a61f881c1fe9d79d75ec050eab048b8cb63/migrations/1767821288.sh#L6-L8), [current lid binds](https://github.com/omacom/omarchy-mac/blob/ba546a61f881c1fe9d79d75ec050eab048b8cb63/default/hypr/bindings/utilities.lua#L38-L39)).
3. `migrations/1767821291.sh` (hardware keys) only edits `$HOME/.config/hypr/bindings/media.conf`; quattro binds the same keys in `default/hypr/bindings/media.lua` L11-15 ([guard](https://github.com/omacom/omarchy-mac/blob/ba546a61f881c1fe9d79d75ec050eab048b8cb63/migrations/1767821291.sh#L6-L8), [current binds](https://github.com/omacom/omarchy-mac/blob/ba546a61f881c1fe9d79d75ec050eab048b8cb63/default/hypr/bindings/media.lua#L11-L15)).

Verified on ba546a61: `git ls-tree -r origin/quattro | grep -E 'hypridle|monitors\.conf|media\.conf'` is empty, and `config/hypr/` contains only `.luarc.json autostart.lua bindings.lua hyprland.lua hyprlock.conf hyprsunset.conf input.lua looknfeel.lua monitors.lua xdph.conf`.

Steps to recreate:
1. On a current quattro install: `ls ~/.config/hypr/hypridle.conf ~/.config/hypr/monitors.conf` → "No such file or directory"; `grep -r kbd_backlight ~/.config/hypr/` → no hits.
2. Run the migrations (update path): they print "Add keyboard backlight dimming on idle for Apple Silicon Macs", "Add lid close and open handling for Apple Silicon Macs", and "Add keyboard backlight hardware key bindings for Apple Silicon Macs" — nothing changes at runtime (an updater with a leftover hypridle.conf gets that stale file edited, but nothing ever reads it).

Why it matters: the files read as if the fork ships keyboard-backlight idle dimming, lid handling, and hardware-key support through these migrations. Two of the three are actually wired elsewhere (the Lua files above), and the third — idle dimming — is not shipped at all yet; it is being implemented in #340 (a first-party `omarchy.keyboard-backlight` service), with adjacent work in #684 and #330. Leaving the stale migrations in place also invites future "fixes" to files the runtime never reads.

### Suggested fix

Delete `migrations/1767821287.sh`, `migrations/1767821288.sh`, and `migrations/1767821291.sh`. Their quattro equivalents already exist or are in flight:

- idle dimming → #340's `shell/plugins/services/keyboard-backlight/` (open, in review)
- lid handling → `default/hypr/bindings/utilities.lua` L38-39
- hardware keys → `default/hypr/bindings/media.lua` L11-15

Safe to delete: the guards can only fire against a leftover hypridle-era config file, which no longer has any effect because hypridle itself was removed — `bin/omarchy-upgrade-to-quattro` L824 and `bin/omarchy-upgrade-to-quattro-mac` L338/L345 list hypridle as part of the retired 3.x desktop stack, and no quattro config or unit reads it.

Related open items not covered by this cleanup: #683 (manual backlight keys after the platform-file drop), #260 (a keyboard-backlight settings panel).

`omarchy-debug` output available on request (this is a code-path gap, not a hardware fault).

Assisted-by: pi:deepseek-v4.1-flash

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.