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-721GitHub issuePublicDecided· Out of scope

Feature request: Smart focus navigation while maximized (Super+C maximize + cyclenext)

Reported by alihancaliskanx · filed Sep 10, 2026 · open at source

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

Feature request: Smart focus navigation while maximized (Super+C maximize + cyclenext)revision 1 · captured 2026-09-28 21:23 UTC via poll

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"
fi

Then 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 layout

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 11:29 UTC