Skip to content

Conversation

@jhenstridge
Copy link
Contributor

What's new?

This implements cursor the cursor session parts of the ext_image_copy_capture_v1 protocol. At present, it sends a dummy cursor image, which will be replaced with the real cursor in a follow-up PR.

Cursor position tracking is done via the CursorObserverMultiplexer, with a source-dependent backend class responsible for transforming the output space cursor coordinates to those of the corresponding image capture, and indicating whether the cursor is within bounds.

This can be tested like so:

  1. Run miral with the following command:
    ./bin/miral-app --add-wayland-extensions ext_output_image_capture_source_manager_v1:ext_image_copy_capture_manager_v1:zwlr_virtual_pointer_manager_v1:zwp_virtual_keyboard_manager_v1
    
  2. Run wayvnc with WAYLAND_DISPLAY=wayland-1 wayvnc
  3. Connect using a VNC client that supports client side cursors. Remina works here, but GNOME Connections does not.
  4. See that the placeholder white triangle cursor is displayed.

Checklist

  • Tests added and pass
  • Adequate documentation added
  • (optional) Added Screenshots or videos

The session uses the CursorObserverMultiplexer to track the cursor
position, and a source-dependent backend class to transform the output
space coordinates to match those of the captured image.

Currently it sends a white triangle as the cursor image rather than the
actual cursor image.
@jhenstridge jhenstridge requested a review from a team as a code owner January 14, 2026 01:28
@github-actions
Copy link

TICS Quality Gate

❌ Failed

mir

Coding Standards: ❌ 2 Blocking Issues

❌ Condition “No new Coding Standard Violations for level 1, 2, 3 with respect to Previous analysis” failed 1 time.
FileIssues
🪲 Total❌ Blocking

src/server/frontend_wayland/ext_image_capture_v1.cpp

2+2

See the results in the TICS Viewer

The following files have been checked for this project
  • src/server/frontend_wayland/ext_image_capture_v1.cpp
  • src/server/frontend_wayland/ext_image_capture_v1.h
  • src/server/frontend_wayland/wayland_connector.cpp
  • src/server/frontend_wayland/wayland_connector.h
  • src/server/frontend_wayland/wayland_default_configuration.cpp

TICS / TICS / Run TICS analysis

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants