Skip to content

Made Cursor Show By Default If Client Doesn't Request The Cursor Mode#99

Open
coolGi69 wants to merge 1 commit intopop-os:masterfrom
coolGi69:default-cursor-show
Open

Made Cursor Show By Default If Client Doesn't Request The Cursor Mode#99
coolGi69 wants to merge 1 commit intopop-os:masterfrom
coolGi69:default-cursor-show

Conversation

@coolGi69
Copy link

Within most DEs/WMs, the default handling of cursors when using the ScreenCast protocol is that if the client does not request any, it defaults to showing the cursor.
Currently, Cosmic is not doing that, causing the cursor to not appear on apps which do not implement this part of the spec (such as Chromium) causing the cursor to be missing when screen sharing.

This is a simple one-line PR just to change the defaults so the cursor can be seen :)

@ids1024
Copy link
Member

ids1024 commented Nov 15, 2024

The spec seems to say the default should be "hidden", as implemented here already?

https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.impl.portal.ScreenCast.html

The default cursor mode is ‘Hidden’.

@coolGi69
Copy link
Author

coolGi69 commented Nov 16, 2024

Even if it is the default on the spec, no user expects it to be.
No other desktop uses the default, which you can easily test by attempting to screenshare on Discord (an Electron app which doesn't implement it) and seeing if the cursor appears (which it does on other desktops).

@rihards-simanovics
Copy link

rihards-simanovics commented Mar 8, 2026

The spec seems to say the default should be "hidden", as implemented here already?

https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.impl.portal.ScreenCast.html

The default cursor mode is ‘Hidden’.

I would have to answer this with a question of “why?”, and “what was the reason for this choice?”.

I don't know the history of the protocol is, but considering it's called “ScreenCast”, perhaps it originally meant to be just it, casting. Then it got extended to have cursor support for screen sharing and remote desktops, with the default “legacy” behaviour to be hidden.

Therefore, while the protocol might ask to have the cursor hidden by the default, then there must be a way for the user to toggle it in the cast.

Considering the user must choose the screen/window before sharing using the cosmic picker, there should be an option to toggle the cursor. Right now as you can see, there is none, so the temp solution should be to enable it, or expose the option. Don't know which one is easier, so would leave it here as a suggestion.

image

@FdelMazo
Copy link

Therefore, while the protocol might ask to have the cursor hidden by the default, then there must be a way for the user to toggle it in the cast.

That sounds like a good idea. @ids1024 is there any reason not to implement a toggle?

@coolGi69
Copy link
Author

Considering the user must choose the screen/window before sharing using the cosmic picker, there should be an option to toggle the cursor.

I also think this is the best route to go. As the app can request weather the cursor should or shouldn't be included, it may be best to only show the option when it isn't requested.

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.

4 participants