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.
Feature request: Smart focus navigation while maximized (Super+C maximize + cyclenext)
Reported by alihancaliskanx · filed Sep 10, 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
Problem
When a window is maximized (fullscreen 1) or in full-screen mode, Hyprland's movefocus dispatcher does not work — pressing Super + Arrow Keys has no effect. This forces users to either unmaximize first or use Alt+Tab, breaking the spatial navigation flow.
Proposed Solution
Two small additions that work together:
1. `Super + C` — Maximize toggle
Bind Super + C to fullscreen 1 (maximized mode — window fills the screen but the panel stays visible). This is a common keybinding in many desktop environments and currently unbound in Omarchy.
o.bind("SUPER + C", "Maximize window", hl.dsp.window.fullscreen({ mode = "maximized" }))2. Smart focus script for arrow keys
A small wrapper (omarchy-smart-focus) that detects whether the active window is maximized. If it is, it uses cyclenext (which bypasses Hyprland's movefocus lock) instead of movefocus. This makes arrow key navigation work seamlessly regardless of window state.
#!/bin/bash
# omarchy-smart-focus — directional focus that works while maximized
DIRECTION="${1:?Usage: omarchy-smart-focus <l|r|u|d>}"
FULLSCREEN=$(hyprctl activewindow -j | jq -r '.fullscreen')
if [[ "$FULLSCREEN" == "1" || "$FULLSCREEN" == "2" ]]; then
if [[ "$DIRECTION" == "l" || "$DIRECTION" == "u" ]]; then
hyprctl dispatch cyclenext prev
else
hyprctl dispatch cyclenext
fi
else
hyprctl dispatch movefocus "$DIRECTION"
fiThen the default arrow bindings become:
o.bind("SUPER + LEFT", "Focus left", "omarchy-smart-focus l")
o.bind("SUPER + RIGHT", "Focus right", "omarchy-smart-focus r")
o.bind("SUPER + UP", "Focus up", "omarchy-smart-focus u")
o.bind("SUPER + DOWN", "Focus down", "omarchy-smart-focus d")Why this matters
- No flickering: The window stays maximized during focus changes — no unmaximize → switch → re-maximize dance.
- Zero config: Works transparently with the existing scrolling layout.
- Backward compatible: When no window is maximized, arrow keys behave exactly as they do today (
movefocus).
Environment
- Omarchy Quattro (latest)
- Hyprland scrolling layout
View raw text
### Problem
When a window is maximized (`fullscreen 1`) or in full-screen mode, Hyprland's `movefocus` dispatcher does not work — pressing `Super + Arrow Keys` has no effect. This forces users to either unmaximize first or use `Alt+Tab`, breaking the spatial navigation flow.
### Proposed Solution
Two small additions that work together:
**1. `Super + C` — Maximize toggle**
Bind `Super + C` to `fullscreen 1` (maximized mode — window fills the screen but the panel stays visible). This is a common keybinding in many desktop environments and currently unbound in Omarchy.
```lua
o.bind("SUPER + C", "Maximize window", hl.dsp.window.fullscreen({ mode = "maximized" }))
```
**2. Smart focus script for arrow keys**
A small wrapper (`omarchy-smart-focus`) that detects whether the active window is maximized. If it is, it uses `cyclenext` (which bypasses Hyprland's `movefocus` lock) instead of `movefocus`. This makes arrow key navigation work seamlessly regardless of window state.
```bash
#!/bin/bash
# omarchy-smart-focus — directional focus that works while maximized
DIRECTION="${1:?Usage: omarchy-smart-focus <l|r|u|d>}"
FULLSCREEN=$(hyprctl activewindow -j | jq -r '.fullscreen')
if [[ "$FULLSCREEN" == "1" || "$FULLSCREEN" == "2" ]]; then
if [[ "$DIRECTION" == "l" || "$DIRECTION" == "u" ]]; then
hyprctl dispatch cyclenext prev
else
hyprctl dispatch cyclenext
fi
else
hyprctl dispatch movefocus "$DIRECTION"
fi
```
Then the default arrow bindings become:
```lua
o.bind("SUPER + LEFT", "Focus left", "omarchy-smart-focus l")
o.bind("SUPER + RIGHT", "Focus right", "omarchy-smart-focus r")
o.bind("SUPER + UP", "Focus up", "omarchy-smart-focus u")
o.bind("SUPER + DOWN", "Focus down", "omarchy-smart-focus d")
```
### Why this matters
- **No flickering:** The window stays maximized during focus changes — no unmaximize → switch → re-maximize dance.
- **Zero config:** Works transparently with the existing scrolling layout.
- **Backward compatible:** When no window is maximized, arrow keys behave exactly as they do today (`movefocus`).
### Environment
- Omarchy Quattro (latest)
- Hyprland scrolling layoutValidation
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 11:29 UTC