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

Dev: XWayland default cursor remains transparent over X11 apps; xsetroot restores it

Reported by ekollof · filed Oct 8, 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

Dev: XWayland default cursor remains transparent over X11 apps; xsetroot restores itrevision 1 · captured 2026-10-08 09:05 UTC via poll

System details

Omarchy dev-linked checkout 61e48f6fae0e4b1c34a790783d809f3f60f0316b, based on quattro b83d3df0, with personal PRs integrated. AMD Ryzen 7 5800X3D; AMD Navi 21 GPU (Radeon RX 6800/6800 XT / 6900 XT family reported by lspci). Three extended displays, scale 1, no touchscreen.

hyprland 0.56.2-4
aquamarine 0.15.1-1
hyprcursor 0.1.13-7
adwaita-cursors 51.0-1
xorg-xwayland 24.1.14-1

Hyprland commit: efb50993780079460b0cbed1363e2166a2de1d9f (v0.56.2). Ardour window class Ardour-9.8.0, confirmed xwayland=true.

What's wrong?

The mouse pointer becomes invisible over X11/XWayland application content. Confirmed in Ardour; restarting Ardour does not restore it. Resetting the X11 root/default cursor restores it immediately, without restarting Ardour, XWayland, or Hyprland:

xsetroot -cursor_name left_ptr

The user confirmed the pointer was visible over Ardour after this command.

Observed sequence and reproduction limits

  1. Update the dev-linked Omarchy checkout with the recent boot-intro changes present.
  2. Use the custom Dynamic Wallpapers theme, which has no boot animation.
  3. Move the pointer over Ardour: pointer invisible.
  4. Restart Ardour: pointer still invisible.
  5. Run the command above: pointer visible immediately.

This describes the observed affected session, not a deterministic clean-install or cold-login reproduction. Initial cursor loss was reported on two other machines too, but the XWayland-specific measurements and repair were verified only on this machine. The theme and boot-intro changes are context, not established causes.

Expected: the normal default pointer remains visible over X11 applications after desktop startup, whether or not the theme supplies an intro.

Measured cursor evidence

A small read-only Xlib/XFixes diagnostic used XFixesGetCursorImage while hovering over Ardour and counted pixels whose ARGB alpha byte was nonzero:

Before xsetroot: size=24x24 visible_pixels=0 name=(empty)
After xsetroot:  size=24x24 visible_pixels=272 name=left_ptr

Loading the installed pointer separately with XcursorLibraryLoadImage("left_ptr", "Adwaita", 24) returned 272 nontransparent pixels. The installed theme image is valid; the active X11 cursor image was entirely transparent.

Other checks and unsuccessful recovery attempts

  • cursor.invisible=false; no Hyprland configuration errors.
  • cursor.no_hardware_cursors=1 (software rendering) was already enabled when the X11 failure persisted.
  • Temporarily selecting Adwaita with hyprctl setcursor Adwaita 24 and disabling Hyprcursor did not restore the pointer in Ardour.
  • gsettings get org.gnome.desktop.interface cursor-theme returned Adwaita.
  • Both Ardour and XWayland inherited XCURSOR_THEME=default, size 24, and the normal icon search path; neither inherited omarchy-startup. The default icon theme inherits Adwaita.
  • After the root-cursor repair, hyprctl setcursor default 24 retained the visible X11 pointer.

Related issue and suspected area

Related: #14512, which reports the blank startup theme persisting in GSettings. Here GSettings was already normal, and changing the X11 root cursor was the successful recovery.

Commit 902fd8aebd98b6eedaa58276886a2f9f2876755f (#9639) introduced the blank startup cursor and its restoration sequence. default/hypr/startup-cursor.lua restores via hyprctl setcursor; the no-intro launcher also exits successfully and has fallback restoration paths. The XWayland default may need restoration too. This is a hypothesis: no cold-session A/B test has established which change initialized the transparent X11 cursor.

The repair above is session-local; next-login persistence has not been tested.

View raw text
### System details

Omarchy dev-linked checkout `61e48f6fae0e4b1c34a790783d809f3f60f0316b`, based on quattro `b83d3df0`, with personal PRs integrated. AMD Ryzen 7 5800X3D; AMD Navi 21 GPU (Radeon RX 6800/6800 XT / 6900 XT family reported by lspci). Three extended displays, scale 1, no touchscreen.

```text
hyprland 0.56.2-4
aquamarine 0.15.1-1
hyprcursor 0.1.13-7
adwaita-cursors 51.0-1
xorg-xwayland 24.1.14-1
```

Hyprland commit: `efb50993780079460b0cbed1363e2166a2de1d9f` (v0.56.2). Ardour window class `Ardour-9.8.0`, confirmed `xwayland=true`.

### What's wrong?

The mouse pointer becomes invisible over X11/XWayland application content. Confirmed in Ardour; restarting Ardour does not restore it. Resetting the X11 root/default cursor restores it immediately, without restarting Ardour, XWayland, or Hyprland:

```bash
xsetroot -cursor_name left_ptr
```

The user confirmed the pointer was visible over Ardour after this command.

### Observed sequence and reproduction limits

1. Update the dev-linked Omarchy checkout with the recent boot-intro changes present.
2. Use the custom Dynamic Wallpapers theme, which has no boot animation.
3. Move the pointer over Ardour: pointer invisible.
4. Restart Ardour: pointer still invisible.
5. Run the command above: pointer visible immediately.

This describes the observed affected session, not a deterministic clean-install or cold-login reproduction. Initial cursor loss was reported on two other machines too, but the XWayland-specific measurements and repair were verified only on this machine. The theme and boot-intro changes are context, not established causes.

Expected: the normal default pointer remains visible over X11 applications after desktop startup, whether or not the theme supplies an intro.

### Measured cursor evidence

A small read-only Xlib/XFixes diagnostic used `XFixesGetCursorImage` while hovering over Ardour and counted pixels whose ARGB alpha byte was nonzero:

```text
Before xsetroot: size=24x24 visible_pixels=0 name=(empty)
After xsetroot:  size=24x24 visible_pixels=272 name=left_ptr
```

Loading the installed pointer separately with `XcursorLibraryLoadImage("left_ptr", "Adwaita", 24)` returned 272 nontransparent pixels. The installed theme image is valid; the active X11 cursor image was entirely transparent.

### Other checks and unsuccessful recovery attempts

- `cursor.invisible=false`; no Hyprland configuration errors.
- `cursor.no_hardware_cursors=1` (software rendering) was already enabled when the X11 failure persisted.
- Temporarily selecting Adwaita with `hyprctl setcursor Adwaita 24` and disabling Hyprcursor did not restore the pointer in Ardour.
- `gsettings get org.gnome.desktop.interface cursor-theme` returned `Adwaita`.
- Both Ardour and XWayland inherited `XCURSOR_THEME=default`, size 24, and the normal icon search path; neither inherited `omarchy-startup`. The default icon theme inherits Adwaita.
- After the root-cursor repair, `hyprctl setcursor default 24` retained the visible X11 pointer.

### Related issue and suspected area

Related: #14512, which reports the blank startup theme persisting in GSettings. Here GSettings was already normal, and changing the X11 root cursor was the successful recovery.

Commit `902fd8aebd98b6eedaa58276886a2f9f2876755f` (#9639) introduced the blank startup cursor and its restoration sequence. `default/hypr/startup-cursor.lua` restores via `hyprctl setcursor`; the no-intro launcher also exits successfully and has fallback restoration paths. The XWayland default may need restoration too. This is a hypothesis: no cold-session A/B test has established which change initialized the transparent X11 cursor.

The repair above is session-local; next-login persistence has not been tested.

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 22:38 UTC