Support for Private Windows
I'm looking for the possibility to tag specific surfaces with a "sensitive/secure/private" tag. This tag would prevent applications from screen capturing toplevels. This could be useful when a user tries to share their screen without accidentally leaking their private messages or passwords.
Ideally, this would be a toggleable hint from within the OS system settings or configuration file, allowing every toplevel to be invisible to a viewer if the user so desires. Some sort of integration via the xdg-desktop-portal permission store could be used.
Windows & Mac have existing API functions for this purpose already. The surface/toplevel is either made completely transparent, or is portrayed as a black rectangle on older versions of Windows. Below are some implementations I've come across.
Protocol inspiration:
- Chromium has an existing protocol, which can be found on the Chrome Git repository.
OS APIs & Toolkit implementations:
App implementations:
- OBS has implemented this for Windows & Mac. When enabled, OBS surfaces are hidden from screen capture.
- Discord has implemented this for Windows & Mac when Streamer Mode is enabled. When enabled, Discord surfaces are hidden from screen capture.