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

Screenshot picker runs with hardware cursors forced on, hiding the pointer on nouveau/vmwgfx while you select

Reported by Chessing234 · filed Aug 25, 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

Screenshot picker runs with hardware cursors forced on, hiding the pointer on nouveau/vmwgfx while you selectrevision 1 · captured 2026-09-28 21:24 UTC via poll

omarchy-capture-screenshot forces cursor:no_hardware_cursors = 0 before it opens the picker:

set_no_hw_cursors 0
{ read -r FREEZE_PID; read -r SELECTION; } < <(omarchy-capture-region "$MODE" --keep-freeze)

and only restores it from the EXIT trap. So the whole interactive selection — hover, drag, Tab through windows — runs with hardware cursors forced on.

That is fine on hardware whose cursor plane works. On hardware where it does not, software cursors are the only pointer there is, and forcing them off makes the pointer vanish for exactly the part of a screenshot that needs one: you are dragging a selection box you cannot see the corner of.

Omarchy knows about this hardware — it turns software cursors on itself:

  • install/user/hardware/fix-nouveau-cursor.sh appends no_hardware_cursors = true to ~/.config/hypr/looknfeel.lua when nouveau is in use, because "the nouveau DRM driver does not display the hardware cursor plane on many older NVIDIA GPUs"
  • the same workaround is what #7918 asks for under VMware's vmwgfx

and then the screenshot command overrides it for the duration of the pick. Hyprland's own default (no_hardware_cursors = 2, auto) is affected too: where auto picked software cursors because the plane failed, forcing 0 produces the same disappearance.

The reason for the override is real — a software cursor is composited into the frame grim captures — but that only needs to hold for the capture, not for the selection. By the time a region has been picked the screen is already frozen and nobody is pointing at anything.

Reproduce

On a nouveau machine (or a VMware guest with no_hardware_cursors set), press the screenshot key. The pointer disappears as slurp opens and comes back when the shot is taken.

View raw text
`omarchy-capture-screenshot` forces `cursor:no_hardware_cursors = 0` before it opens the picker:

```bash
set_no_hw_cursors 0
{ read -r FREEZE_PID; read -r SELECTION; } < <(omarchy-capture-region "$MODE" --keep-freeze)
```

and only restores it from the EXIT trap. So the whole interactive selection — hover, drag, Tab through windows — runs with hardware cursors forced on.

That is fine on hardware whose cursor plane works. On hardware where it does not, software cursors are the only pointer there is, and forcing them off makes the pointer vanish for exactly the part of a screenshot that needs one: you are dragging a selection box you cannot see the corner of.

Omarchy knows about this hardware — it turns software cursors on itself:

- `install/user/hardware/fix-nouveau-cursor.sh` appends `no_hardware_cursors = true` to `~/.config/hypr/looknfeel.lua` when nouveau is in use, because "the nouveau DRM driver does not display the hardware cursor plane on many older NVIDIA GPUs"
- the same workaround is what #7918 asks for under VMware's vmwgfx

and then the screenshot command overrides it for the duration of the pick. Hyprland's own default (`no_hardware_cursors = 2`, auto) is affected too: where auto picked software cursors because the plane failed, forcing `0` produces the same disappearance.

The reason for the override is real — a software cursor is composited into the frame grim captures — but that only needs to hold for the capture, not for the selection. By the time a region has been picked the screen is already frozen and nobody is pointing at anything.

## Reproduce

On a nouveau machine (or a VMware guest with `no_hardware_cursors` set), press the screenshot key. The pointer disappears as slurp opens and comes back when the shot is taken.

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 09:05 UTC