https://bugs.kde.org/show_bug.cgi?id=527402

            Bug ID: 527402
           Summary: krfb-virtualmonitor: cursor invisible in TigerVNC
                    viewer (position only sent via PointerPos, which
                    TigerVNC doesn't support)
    Classification: Applications
           Product: krfb
      Version First unspecified
       Reported In:
          Platform: Arch Linux
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

DESCRIPTION
When connecting to krfb-virtualmonitor with the TigerVNC viewer, the mouse
cursor is not visible when the host's pointer is on the virtual monitor. With
Remmina and "Show remote cursor" enabled, the cursor shows correctly.

Cause (from krfb source, master 0a8bd01, and libvncserver debug output):
- pw_framebuffer.cpp creates the virtual monitor stream with
Screencasting::Metadata, so KWin does not embed the cursor in the frames.
- rfbservermanager.cpp sends clients a fixed X cursor (rfbMakeXCursor) and
updates the position through libvncserver (cursorX/cursorY ->
rfbEncodingPointerPos).
- TigerVNC requests cursor shape updates (rich cursor / X cursor) but not
PointerPos. It offers the VMware cursor position pseudo-encoding instead, which
libvncserver ignores:
    rfbProcessClientNormalMessage: ignoring unsupported encoding type
Enc(0x574D5666)
    Enabling full-color cursor updates for client ...
- So the client has a cursor shape but never receives a position, and
libvncserver doesn't draw the cursor into the framebuffer because the client
said it handles cursor shapes itself. The cursor is effectively invisible.

STEPS TO REPRODUCE
1. krfb-virtualmonitor --resolution 1920x1080 --name Test --password x --port
5900
2. From another machine: vncviewer <host>::5900   (TigerVNC)
3. Move the host's mouse onto the virtual monitor.

OBSERVED RESULT
No cursor in the viewer.

EXPECTED RESULT
Cursor visible at the host pointer's position.

SOFTWARE/OS VERSIONS
Operating System: CachyOS Linux
KDE Plasma Version: 6.8.0
KDE Frameworks Version: 6.31.0
Qt Version: 6.12.0

ADDITIONAL INFORMATION
POSSIBLE FIXES: request Screencasting::Embedded for clients that don't support
PointerPos, draw the cursor into the framebuffer in that case, or forward the
real cursor image from the PipeWire metadata.

WORKAROUND: Use a libvncclient-based viewer (Remmina with "Show remote
cursor").

Possibly related: https://discuss.kde.org/t/no-cursor-with-krdpserver/46818
(same symptom with krdp's virtual monitor)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to