bengreenier / bengreenier/browserd

Hide cursor in video feed 🐭

Open
#30 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
68
Forks
8
PR merge metrics
No merged PRs in 30d

Description

We should not show the cursor in the webrtc video feed, however it's baked in and cannot be removed using the APIs we are using for user media. However, since the linux edition of the webrtc mouse monitor code uses xfixes (if the server supports it, ours seems to) we should be able to tell xfixes to hide the cursor (or make it transparent) and expect webrtc to do the same.

+ [XFIXES API](https://www.x.org/releases/X11R7.7/doc/fixesproto/fixesproto.txt) (ctrl+f for "HideCursor")
+ [Unclutter-xfixes](https://github.com/Airblader/unclutter-xfixes/blob/master/src/cursor.c) (related source/solution)
+ [Webrtc source](https://chromium.googlesource.com/external/webrtc/stable/webrtc/+/master/modules/desktop_capture/mouse_cursor_monitor_x11.cc#179)

Note: If [desktopCapturer](https://github.com/electron/electron/blob/master/docs/api/desktop-capturer.md) supports [getDisplayMedia](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia) in the future, we can use that to disable the cursor.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the XFIXES API and the referenced unclutter-xfixes cursor.c implementation, then compare the relevant WebRTC mouse_cursor_monitor_x11.cc code. Verify how Electron desktopCapturer supplies the feed; done means the cursor is hidden or transparent in the WebRTC video feed on a supported Linux X server.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, linux, typescript
Domain
audio-video-rtc, desktop, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.