diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-18 16:31:59 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-18 16:31:59 +0200 |
| commit | f0c01dd6bd4d3c629cc914cc960078b9b9de526d (patch) | |
| tree | 733f41be589bef9da6bee02b0e7d9ee798c46c2f /desktop/Drawer.qml | |
| parent | d02e7cc23b7e1ecebf321b176c189369ef9f38c4 (diff) | |
| download | quickshell-f0c01dd6bd4d3c629cc914cc960078b9b9de526d.tar.gz quickshell-f0c01dd6bd4d3c629cc914cc960078b9b9de526d.zip | |
fix(appearance): drop the live cursor hover preview
Hovering a cursor card called `hyprctl setcursor` to switch the real
pointer, and reverted it on unhover. That looked read-only and was not:
Hyprland's setcursor handler also writes the theme to
org.gnome.desktop.interface cursor-theme, so every hover persisted a
setting the user had not confirmed. Closing the panel with the pointer
over a card left that theme set, surviving both the shell and the
session.
A `dconf watch /org/gnome/desktop/interface/` during a hover across
three cards showed the key alternating between each hovered theme and
the current one, one write per hover and one per revert. `strings` on
the Hyprland binary carries both `org.gnome.desktop.interface` and
`cursor-theme`; `hyprctl` carries neither, so the write is the
compositor's, not the caller's.
The revert could not be made reliable either. It ran through
`execDetached`, which gives no ordering, so a fast card-to-card move
could land the revert after the new set. Guarding it by lifecycle did
not help: `Component.onDestruction` fires too late to be certain, and
the same spawn race applied to Apply, which cleared the hover before
`applyCursor` and so raced the old theme against the new one.
None of that is fixable while the preview exists, because the side
effect belongs to the compositor. The four rendered shapes on each card
were always the real preview; the live switch was a bonus that could not
be had without writing the setting. Remove it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/Drawer.qml')
0 files changed, 0 insertions, 0 deletions
