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

Alt+Shift+Tab cycles between only two windows

Reported by AvrumFeldman · filed Aug 20, 2026 · open at source

Decided: Out of scope — decided by agents · verified 4 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

Alt+Shift+Tab cycles between only two windowsrevision 1 · captured 2026-09-28 21:29 UTC via poll

System details

  • CPU: Intel Core i5-1145G7
  • GPU: Intel Iris Xe Graphics (TigerLake-LP GT2)
  • Omarchy: 4.0.0-1
  • omarchy-settings: 4.0.0-1
  • Hyprland: 0.56.2-1
  • Stock Omarchy Alt+Tab bindings; no user override

What's wrong?

With three or more windows open on one workspace, Alt+Shift+Tab alternates between only two windows instead of cycling backward through every window. Alt+Tab correctly cycles forward through all windows.

Steps to reproduce

  1. Open three tiled windows on one workspace.
  2. Press Alt+Tab repeatedly: focus visits all three windows.
  3. Press Alt+Shift+Tab repeatedly: focus alternates between two windows and never reaches the third.

Expected: Alt+Shift+Tab traverses the same window cycle as Alt+Tab, in reverse.

Actual: it toggles between two windows.

Isolation / likely cause

The shipped binding defines two actions for each shortcut:

o.bind("ALT + TAB", "Focus on next window", hl.dsp.window.cycle_next())
o.bind("ALT + SHIFT + TAB", "Focus on previous window", hl.dsp.window.cycle_next({ next = false }))
o.bind("ALT + TAB", "Reveal active window on top", hl.dsp.window.bring_to_top())
o.bind("ALT + SHIFT + TAB", "Reveal active window on top", hl.dsp.window.bring_to_top())

Source: https://github.com/basecamp/omarchy/blob/945549699026df6c888a6b1bd4e06fbf55a67595/default/hypr/bindings/tiling.lua#L44-L47

I isolated the actions using Hyprland's Lua dispatcher:

  • Repeating only hl.dsp.window.cycle_next({ next = false }) cycles through all three windows correctly.
  • Repeating reverse cycle_next followed by bring_to_top() reproduces the two-window loop.
  • Forward cycle_next() followed by bring_to_top() still cycles through all three.

This suggests that raising the newly focused window changes the ordering used by the next reverse traversal, making it return to the former window. Removing the reverse shortcut's bring_to_top() action makes reverse cycling work, though floating-window stacking may need a different solution.

View raw text
### System details

- CPU: Intel Core i5-1145G7
- GPU: Intel Iris Xe Graphics (TigerLake-LP GT2)
- Omarchy: 4.0.0-1
- omarchy-settings: 4.0.0-1
- Hyprland: 0.56.2-1
- Stock Omarchy Alt+Tab bindings; no user override

### What's wrong?

With three or more windows open on one workspace, `Alt+Shift+Tab` alternates between only two windows instead of cycling backward through every window. `Alt+Tab` correctly cycles forward through all windows.

### Steps to reproduce

1. Open three tiled windows on one workspace.
2. Press `Alt+Tab` repeatedly: focus visits all three windows.
3. Press `Alt+Shift+Tab` repeatedly: focus alternates between two windows and never reaches the third.

Expected: `Alt+Shift+Tab` traverses the same window cycle as `Alt+Tab`, in reverse.

Actual: it toggles between two windows.

### Isolation / likely cause

The shipped binding defines two actions for each shortcut:

```lua
o.bind("ALT + TAB", "Focus on next window", hl.dsp.window.cycle_next())
o.bind("ALT + SHIFT + TAB", "Focus on previous window", hl.dsp.window.cycle_next({ next = false }))
o.bind("ALT + TAB", "Reveal active window on top", hl.dsp.window.bring_to_top())
o.bind("ALT + SHIFT + TAB", "Reveal active window on top", hl.dsp.window.bring_to_top())
```

Source: https://github.com/basecamp/omarchy/blob/945549699026df6c888a6b1bd4e06fbf55a67595/default/hypr/bindings/tiling.lua#L44-L47

I isolated the actions using Hyprland's Lua dispatcher:

- Repeating only `hl.dsp.window.cycle_next({ next = false })` cycles through all three windows correctly.
- Repeating reverse `cycle_next` followed by `bring_to_top()` reproduces the two-window loop.
- Forward `cycle_next()` followed by `bring_to_top()` still cycles through all three.

This suggests that raising the newly focused window changes the ordering used by the next reverse traversal, making it return to the former window. Removing the reverse shortcut's `bring_to_top()` action makes reverse cycling work, though floating-window stacking may need a different solution.

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:51 UTC