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

Chrome tabs briefly lose scroll/keyboard focus on native Wayland (nofocus rule only covers xwayland)

Reported by bagayasbryan-code · filed Sep 12, 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

Chrome tabs briefly lose scroll/keyboard focus on native Wayland (nofocus rule only covers xwayland)revision 1 · captured 2026-09-28 21:23 UTC via poll

Description

Right after opening a new tab in Google Chrome (running natively on Wayland via --ozone-platform=wayland, not XWayland), mouse scroll and the spacebar stop working in the tab — clicking to another window and back to Chrome restores it immediately.

Cause

Chrome briefly creates a transient toplevel surface with an empty class/title (likely used for tab-drag-threshold detection). Hyprland's default focus-follows-new-window behavior hands that surface keyboard/pointer focus, so the visible tab never actually gets input until focus is forced back onto it.

Omarchy already has a fix for this exact window signature in default/hypr/windows.lua:

-- Fix some dragging issues with XWayland.
o.window(
  {
    class = "^$",
    title = "^$",
    xwayland = true,
    float = true,
    fullscreen = false,
    pin = false,
  },
  { no_focus = true }
)

but it's scoped to xwayland = true, so it doesn't cover Chrome's native-Wayland surfaces.

Suggested fix

Add an equivalent rule without the xwayland = true condition (or a parallel rule with xwayland = false), so empty class/title floating transient windows don't steal focus regardless of whether they're XWayland or native Wayland clients.

Workaround

Personal config addition that resolves it locally:

windowrule = nofocus, match:class ^$, match:title ^$, match:floating 1, match:fullscreen 0

Environment

  • Hyprland 0.56.2
  • google-chrome-stable 152.0.7977.64, launched with --ozone-platform=wayland --ozone-platform-hint=wayland
  • Omarchy (current)

🤖 Generated with Claude Code

View raw text
## Description

Right after opening a new tab in Google Chrome (running natively on Wayland via `--ozone-platform=wayland`, not XWayland), mouse scroll and the spacebar stop working in the tab — clicking to another window and back to Chrome restores it immediately.

## Cause

Chrome briefly creates a transient toplevel surface with an empty class/title (likely used for tab-drag-threshold detection). Hyprland's default focus-follows-new-window behavior hands that surface keyboard/pointer focus, so the visible tab never actually gets input until focus is forced back onto it.

Omarchy already has a fix for this exact window signature in `default/hypr/windows.lua`:

```lua
-- Fix some dragging issues with XWayland.
o.window(
  {
    class = "^$",
    title = "^$",
    xwayland = true,
    float = true,
    fullscreen = false,
    pin = false,
  },
  { no_focus = true }
)
```

but it's scoped to `xwayland = true`, so it doesn't cover Chrome's native-Wayland surfaces.

## Suggested fix

Add an equivalent rule without the `xwayland = true` condition (or a parallel rule with `xwayland = false`), so empty class/title floating transient windows don't steal focus regardless of whether they're XWayland or native Wayland clients.

## Workaround

Personal config addition that resolves it locally:

```
windowrule = nofocus, match:class ^$, match:title ^$, match:floating 1, match:fullscreen 0
```

## Environment

- Hyprland 0.56.2
- google-chrome-stable 152.0.7977.64, launched with `--ozone-platform=wayland --ozone-platform-hint=wayland`
- Omarchy (current)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

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 12:06 UTC