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

Invisible mouse cursor in VMware guest: vmwgfx hardware cursor plane fails to commit (needs no_hardware_cursors)

Reported by BigNatoDemon · filed Aug 23, 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

Invisible mouse cursor in VMware guest: vmwgfx hardware cursor plane fails to commit (needs no_hardware_cursors)revision 1 · captured 2026-09-28 21:24 UTC via poll

System details

Omarchy 4.0.0, Hyprland 0.56.2, running as a VMware guest (Workstation/Player) with the VMware SVGA II Adapter (vmwgfx kernel driver), no 3D acceleration.

(omarchy-debug requires sudo + an interactive TTY, so its output could not be attached here; the relevant Hyprland log excerpts are included inline below.)

What's wrong?

Invisible mouse cursor on VMware SVGA II (vmwgfx).

After login, once the Hyprland desktop finishes loading, the mouse pointer is invisible anywhere on the desktop. During early boot / the display-manager phase (before the compositor takes over) the cursor is still visible. Pointer events are delivered — windows can be focused blindly — but there is no visible pointer.

Root cause (from /run/user/$UID/hypr/$HYPRLAND_INSTANCE_SIGNATURE/hyprland.log):

The vmwgfx hardware cursor plane fails to commit, hundreds of times per session:

DEBUG from aquamarine ]: legacy drm: cursor fb: 26 with bo handle 53039 from fd 52, size [Vector2D: x: 64, y: 64]
ERR from aquamarine ]: legacy drm: drmCloseBufferHandle in cursor failed
... (1700+ occurrences over a few hours)
ERR from aquamarine ]: drm: Cannot commit when a page-flip is awaiting

Hyprland pushes the cursor onto the DRM cursor plane, the commit fails on vmwgfx (which is also why AQ_NO_ATOMIC=1 is needed on this driver — atomic modesetting hangs page-flips), and the pointer never shows up.

Verified fix:

Append to ~/.config/hypr/looknfeel.lua:

-- VMware SVGA II (vmwgfx) does not display the hardware cursor plane;
-- render the cursor in software.
hl.config({
  cursor = {
    no_hardware_cursors = true,
  },
})

After hyprctl reload, hyprctl getoption cursor:no_hardware_cursors reports set: true, the cursor-fb commit errors stop completely, and the pointer is visible. Persists across reboots.

Two things that do NOT work, worth noting in the docs:
- WLR_NO_HARDWARE_CURSORS=1 as an env var is deprecated and ignored by current Hyprland.
- A cursor { no_hardware_cursors = true } block in a legacy hyprland.conf is ignored when a hyprland.lua config exists (as in Omarchy 4.x).

Suggestion: Omarchy already ships install/user/hardware/fix-nouveau-cursor.sh, which applies exactly this no_hardware_cursors fix when nouveau is detected. The same treatment should cover VMware guests: detect vmwgfx (e.g. lspci -k | grep -q 'Kernel driver in use: vmwgfx' or lspci | grep -qi 'VMware SVGA II') and append the same block to looknfeel.lua. Many people first try Omarchy in a VMware VM, so this is a common first-run failure that silently leaves users with an invisible pointer.

Happy to send a PR if the maintainers agree. Related (different symptom, same environment): #7835.

View raw text
### System details

Omarchy 4.0.0, Hyprland 0.56.2, running as a VMware guest (Workstation/Player) with the **VMware SVGA II Adapter** (`vmwgfx` kernel driver), no 3D acceleration.

(`omarchy-debug` requires sudo + an interactive TTY, so its output could not be attached here; the relevant Hyprland log excerpts are included inline below.)

### What's wrong?

**Invisible mouse cursor on VMware SVGA II (vmwgfx).**

After login, once the Hyprland desktop finishes loading, the mouse pointer is invisible anywhere on the desktop. During early boot / the display-manager phase (before the compositor takes over) the cursor is still visible. Pointer events are delivered — windows can be focused blindly — but there is no visible pointer.

**Root cause** (from `/run/user/$UID/hypr/$HYPRLAND_INSTANCE_SIGNATURE/hyprland.log`):

The vmwgfx hardware cursor plane fails to commit, hundreds of times per session:

```
DEBUG from aquamarine ]: legacy drm: cursor fb: 26 with bo handle 53039 from fd 52, size [Vector2D: x: 64, y: 64]
ERR from aquamarine ]: legacy drm: drmCloseBufferHandle in cursor failed
... (1700+ occurrences over a few hours)
ERR from aquamarine ]: drm: Cannot commit when a page-flip is awaiting
```

Hyprland pushes the cursor onto the DRM cursor plane, the commit fails on vmwgfx (which is also why `AQ_NO_ATOMIC=1` is needed on this driver — atomic modesetting hangs page-flips), and the pointer never shows up.

**Verified fix**:

Append to `~/.config/hypr/looknfeel.lua`:

```lua
-- VMware SVGA II (vmwgfx) does not display the hardware cursor plane;
-- render the cursor in software.
hl.config({
  cursor = {
    no_hardware_cursors = true,
  },
})
```

After `hyprctl reload`, `hyprctl getoption cursor:no_hardware_cursors` reports `set: true`, the cursor-fb commit errors stop completely, and the pointer is visible. Persists across reboots.

Two things that do NOT work, worth noting in the docs:
- `WLR_NO_HARDWARE_CURSORS=1` as an env var is deprecated and ignored by current Hyprland.
- A `cursor { no_hardware_cursors = true }` block in a legacy `hyprland.conf` is ignored when a `hyprland.lua` config exists (as in Omarchy 4.x).

**Suggestion**: Omarchy already ships `install/user/hardware/fix-nouveau-cursor.sh`, which applies exactly this `no_hardware_cursors` fix when nouveau is detected. The same treatment should cover VMware guests: detect `vmwgfx` (e.g. `lspci -k | grep -q 'Kernel driver in use: vmwgfx'` or `lspci | grep -qi 'VMware SVGA II'`) and append the same block to `looknfeel.lua`. Many people first try Omarchy in a VMware VM, so this is a common first-run failure that silently leaves users with an invisible pointer.

Happy to send a PR if the maintainers agree. Related (different symptom, same environment): #7835.

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 08:31 UTC