Repository navigation
Possibility of not rendering windows that are supposed to be blocked out #3596
guicostaarantes
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Being able to block certain windows for privacy reasons while sharing my screen is an amazing feature.
For my specific use case, the windows that I would prefer not to be visible are the launcher and notification layers, and also my password manager which I open as a floating window.
Whenever any of these windows open, they render black boxes in the screencast which is expected but can be distracting to watchers. It's also not ideal since it relays some information as watchers may guess that a blocked rectangle on the top right side of the screen is a received notification. It also feels like I am doing something shady and hiding it from them, which is not ideal for e.g. job interviews.
In such cases, it would be best in my opinion to simply not render the windows, leaving whatever is behind them visible.
I was able to achieve this by building a patched version of niri that returns early on a couple of methods that are used to push layers into the screen when the window rules say it should be blocked.
I understand that for some folks there will be scenarios where blocking would be preferable over not rendering, and since this is the existing behavior, it makes no sense to open a PR for this patch.
So in order to implement this, it would ideal to give an option to both approaches via config file. A simple approach would be having a global option such as
prefer-no-csd, perhaps nameddo-not-render-blocked-out-windows, so that all windows will not render when they are supposed to be blocked. Another approach would be a window rule similar toblock-out-frombut that triggers the not rendering, perhaps nameddo-not-render-from.This could also be undertaken as part of discussion #3272 to customize the black box with custom colors, text, etc. Just add opacity there and setting it to zero would practically function in the same way.
All reactions