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.
Keyboard backlight stays off after unlock: a repeated lock-screen blank saves 0 over the user's level
Reported by mcgalleg · filed Oct 2, 2026 · open at source
R-1877 is the earliest report of this defect — filed Aug 9, 2026, open upstream. This report (filed Oct 2, 2026) describes the same defect, so it is folded under it in the inbox.
The original is tracked as known issueLock keyboard-off saves brightness 0 when the light is already off, so unlock restores darkness KI-261009-4MB1
Decided by agents · verified· Oct 9, 2026
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?
- 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
System details
- Omarchy 4.0.4-1 (also present on
quattroat 821ae58) - MacBookPro16,2 (Intel T2), kernel 7.2.7-arch1-Watanare-T2-2-t2
- brightnessctl 0.5.1-3, keyboard LED
:white:kbd_backlight(max 14660)
What happened
After unlocking, the keyboard backlight sometimes stays at 0 instead of coming back to the level it had before the lock. Once that happens, every later unlock also restores 0, until the level is changed by hand.
What was expected
Unlocking restores the keyboard backlight to the level it had before the screen locked.
Cause
omarchy-brightness-keyboard off saves the current level and then sets 0. It saves every time it runs, including when the light is already 0:
# bin/omarchy-brightness-keyboard:28
if [[ $direction == "off" ]]; then
brightnessctl -sd "$device" set 0 >/dev/nullThe lock screen can run it more than once during a single lock. runBlank() starts blankProcess (omarchy-brightness-keyboard off; omarchy-brightness-display off) whenever idleBlankTimer fires. That timer is re-armed while the screen is already blank:
onAuthenticatingPasswordChanged→armBlankTimer()after each password attempt (for example a mistyped password)idleBlankTimer.onTriggered→armBlankTimer()when a countdown frozen by suspend fires after resume
Each extra blank runs off again with the light already at 0, which saves 0 over the real level. On unlock, omarchy-system-wake runs omarchy-brightness-keyboard restore, which restores that 0.
The display has no such problem, because omarchy-brightness-display off uses DPMS and saves nothing.
Steps to reproduce
Reproduced directly with the scripts, no lock needed:
D=':white:kbd_backlight' # or any *kbd_backlight* LED
S=$XDG_RUNTIME_DIR/brightnessctl/leds/$D
brightnessctl -q -d "$D" set 40%
omarchy-brightness-keyboard off; cat "$S" # 5864 (the 40% level, saved)
omarchy-brightness-keyboard off; cat "$S" # 0 (overwritten)
omarchy-brightness-keyboard restore
brightnessctl -d "$D" get # 0, expected 5864Through the lock screen: set the keyboard backlight to a nonzero level, lock, wait 5 seconds for the blank, then enter a wrong password and wait another 5 seconds. Unlock. The keyboard backlight stays off.
Suggested fix
Don't save when the light is already off, so a repeated off keeps the level saved by the first one:
if [[ $direction == "off" ]]; then
if (( $(brightnessctl -d "$device" get) > 0 )); then
brightnessctl -sd "$device" set 0 >/dev/null
fi
exit 0One edge case: if the user turned the backlight off themselves after an earlier save, restore brings back that older level instead of 0. To keep "off" when the user chose off, blankProcess could skip the keyboard when displaysBlank is already true, so it runs off only once per blank.
View raw text
### System details
- Omarchy 4.0.4-1 (also present on `quattro` at 821ae58)
- MacBookPro16,2 (Intel T2), kernel 7.2.7-arch1-Watanare-T2-2-t2
- brightnessctl 0.5.1-3, keyboard LED `:white:kbd_backlight` (max 14660)
### What happened
After unlocking, the keyboard backlight sometimes stays at 0 instead of coming back to the level it had before the lock. Once that happens, every later unlock also restores 0, until the level is changed by hand.
### What was expected
Unlocking restores the keyboard backlight to the level it had before the screen locked.
### Cause
`omarchy-brightness-keyboard off` saves the current level and then sets 0. It saves every time it runs, including when the light is already 0:
```bash
# bin/omarchy-brightness-keyboard:28
if [[ $direction == "off" ]]; then
brightnessctl -sd "$device" set 0 >/dev/null
```
The lock screen can run it more than once during a single lock. `runBlank()` starts `blankProcess` (`omarchy-brightness-keyboard off; omarchy-brightness-display off`) whenever `idleBlankTimer` fires. That timer is re-armed while the screen is already blank:
- `onAuthenticatingPasswordChanged` → `armBlankTimer()` after each password attempt (for example a mistyped password)
- `idleBlankTimer.onTriggered` → `armBlankTimer()` when a countdown frozen by suspend fires after resume
Each extra blank runs `off` again with the light already at 0, which saves 0 over the real level. On unlock, `omarchy-system-wake` runs `omarchy-brightness-keyboard restore`, which restores that 0.
The display has no such problem, because `omarchy-brightness-display off` uses DPMS and saves nothing.
### Steps to reproduce
Reproduced directly with the scripts, no lock needed:
```bash
D=':white:kbd_backlight' # or any *kbd_backlight* LED
S=$XDG_RUNTIME_DIR/brightnessctl/leds/$D
brightnessctl -q -d "$D" set 40%
omarchy-brightness-keyboard off; cat "$S" # 5864 (the 40% level, saved)
omarchy-brightness-keyboard off; cat "$S" # 0 (overwritten)
omarchy-brightness-keyboard restore
brightnessctl -d "$D" get # 0, expected 5864
```
Through the lock screen: set the keyboard backlight to a nonzero level, lock, wait 5 seconds for the blank, then enter a wrong password and wait another 5 seconds. Unlock. The keyboard backlight stays off.
### Suggested fix
Don't save when the light is already off, so a repeated `off` keeps the level saved by the first one:
```bash
if [[ $direction == "off" ]]; then
if (( $(brightnessctl -d "$device" get) > 0 )); then
brightnessctl -sd "$device" set 0 >/dev/null
fi
exit 0
```
One edge case: if the user turned the backlight off themselves after an earlier save, `restore` brings back that older level instead of 0. To keep "off" when the user chose off, `blankProcess` could skip the keyboard when `displaysBlank` is already true, so it runs `off` only once per blank.
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/8119· confirmed
- Related PRpr/12502· confirmed
- Duplicate ofR-1877Keyboard backlight restore fails after lock (brightnessctl saves 0 after Dell stop_timeout)· decided by agents · verified
- Fixed bypr/10366· confirmed
- Fixed bypr/12960· 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.