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.
Quattro migration doesn't update kb_options, trapping Caps Lock ON
Reported by jamesgoldswain · filed Aug 17, 2026 · open at source
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
System details
- Omarchy 4.0.0-1 (Quattro stable), upgraded from pre-Quattro installation
- Linux 7.1.8-arch1-3
- NuPhy keyboard (USB cable connection)
What's wrong?
After upgrading to Quattro, Caps Lock became stuck ON with no way to toggle it off. This caused authentication failures at the lock screen.
Root cause
The Quattro upgrade changed the default kb_options from:
kb_options = "compose:caps"to:
kb_options = "compose:caps,shift:both_capslock_cancel"The new shift:both_capslock_cancel option allows toggling Caps Lock via both Shifts. However, the migration script (1781485962.sh) preserves the user's existing kb_options value without adding the new option.
This creates two problems:
1. During upgrade: New defaults may be temporarily applied, potentially toggling Caps Lock ON via shift:both_capslock_cancel
2. After upgrade: User's local config lacks shift:both_capslock_cancel, so there's no way to toggle Caps Lock back OFF
Steps to reproduce
- Start with pre-Quattro installation having
kb_options = compose:capsin~/.config/hypr/input.conf - Upgrade to Quattro
- If Caps Lock gets toggled ON during upgrade, it cannot be toggled OFF
Expected behavior
The migration should update kb_options to include shift:both_capslock_cancel when the user's config doesn't already have it.
Suggested fix
In migration 1781485962.sh, after converting input.conf to input.lua, check if kb_options contains shift:both_capslock_cancel. If not, append it.
Workaround
Manually add shift:both_capslock_cancel to kb_options in ~/.config/hypr/input.lua:
kb_options = "compose:caps,shift:both_capslock_cancel",View raw text
### System details - Omarchy 4.0.0-1 (Quattro stable), upgraded from pre-Quattro installation - Linux 7.1.8-arch1-3 - NuPhy keyboard (USB cable connection) ### What's wrong? After upgrading to Quattro, Caps Lock became stuck ON with no way to toggle it off. This caused authentication failures at the lock screen. ### Root cause The Quattro upgrade changed the default `kb_options` from: ```lua kb_options = "compose:caps" ``` to: ```lua kb_options = "compose:caps,shift:both_capslock_cancel" ``` The new `shift:both_capslock_cancel` option allows toggling Caps Lock via both Shifts. However, the migration script (`1781485962.sh`) preserves the user's existing `kb_options` value without adding the new option. This creates two problems: 1. **During upgrade:** New defaults may be temporarily applied, potentially toggling Caps Lock ON via `shift:both_capslock_cancel` 2. **After upgrade:** User's local config lacks `shift:both_capslock_cancel`, so there's no way to toggle Caps Lock back OFF ### Steps to reproduce 1. Start with pre-Quattro installation having `kb_options = compose:caps` in `~/.config/hypr/input.conf` 2. Upgrade to Quattro 3. If Caps Lock gets toggled ON during upgrade, it cannot be toggled OFF ### Expected behavior The migration should update `kb_options` to include `shift:both_capslock_cancel` when the user's config doesn't already have it. ### Suggested fix In migration `1781485962.sh`, after converting `input.conf` to `input.lua`, check if `kb_options` contains `shift:both_capslock_cancel`. If not, append it. ### Workaround Manually add `shift:both_capslock_cancel` to `kb_options` in `~/.config/hypr/input.lua`: ```lua kb_options = "compose:caps,shift:both_capslock_cancel", ```
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 04:32 UTC