bengreenier / bengreenier/browserd
Hide cursor in video feed 🐭
- 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