pinnacle-comp / pinnacle

A WIP Smithay-based Wayland compositor, inspired by AwesomeWM and configured in Lua or Rust
GNU General Public License v3.0
266 stars 13 forks source link

Screencopies without overlay cursor cause the pointer to disappear #190

Open Ottatop opened 6 months ago

Ottatop commented 6 months ago

In udev this is because Smithay/smithay#1378 causes any screencopying to have a hole under the cursor if it's on the cursor plane. As a workaround, screencopies cause the pointer to be rendered on the primary plane instead. A consequence of this is that copying the frame will always include the pointer, and I can't remove the pointer from the composite after the fact. To get no-cursor screencopies to work, I remove the pointer from being drawn altogether.

In winit this is because the pointer is always composited together with the rest of the things, and I'm not rendering it for the same reason. Drawing the pointer after a screencopy might work but I haven't tried that out. It also might run into the same issue as above and create a hole around the cursor.

This should not be meaningful if you're doing a single screenshot without the cursor, but if you're doing a screen recording without the cursor (for example wl-mirror --no-show-cursor <output>) then the cursor will dim, flicker, and/or straight up disappear.

Ottatop commented 3 months ago

As of #258 this has been fixed on the udev backend.