Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA 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.
Dev: XWayland default cursor remains transparent over X11 apps; xsetroot restores it
Reported by ekollof · filed Oct 8, 2026 · open at source
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
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-1Hyprland 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_ptrThe user confirmed the pointer was visible over Ardour after this command.
Observed sequence and reproduction limits
- Update the dev-linked Omarchy checkout with the recent boot-intro changes present.
- Use the custom Dynamic Wallpapers theme, which has no boot animation.
- Move the pointer over Ardour: pointer invisible.
- Restart Ardour: pointer still invisible.
- 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_ptrLoading 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 24and disabling Hyprcursor did not restore the pointer in Ardour. gsettings get org.gnome.desktop.interface cursor-themereturnedAdwaita.- Both Ardour and XWayland inherited
XCURSOR_THEME=default, size 24, and the normal icon search path; neither inheritedomarchy-startup. The default icon theme inherits Adwaita. - After the root-cursor repair,
hyprctl setcursor default 24retained 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