scenefx
scenefx copied to clipboard
blur_ignore_transparent cutout incorrect on rotated displays
Obligatory: I'm not sure if this is an issue with SwayNC, SwayFX, or SceneFX. While I've only seen it happen with SwayNC, based on https://github.com/ErikReider/SwayNotificationCenter/issues/572, this sounds like it may be an issue with SwayFX or SceneFX
Describe the bug As tested with swayfx 0.5 and 0.5.3 (and thus corresponding scenefx versions), using the following config to get a background blur on SwayNC leads to the blur behind swaync's control center and notifications no longer matching the window's location (see image below) for displays in portrait mode.
layer_effects "swaync-notification-window" {
blur enable;
blur_ignore_transparent true;
}
layer_effects "swaync-control-center" {
blur enable;
blur_ignore_transparent true;
}
Based on my testing, this seems to be an issue strictly with the blur_ignore_transparent setting: when the setting is disabled, blurs are correctly positioned behind their application windows.
To Reproduce Steps to reproduce the behavior:
- Use a window manager such as swayfx to blur the background of swaync
- Rotate your display into portrait mode and open swaync (note: I've tried launching swaync only after the screen has been rotated, and the problem still exists)
- The blurred portion of the screen will mot match swaync's location on the screen
Expected behavior For the blurred area behind the swaync windows to match the window's extents.
Please provide logs if you're experiencing notification errors / bugs N/A
Screenshots
I have the same problem. It seems that swaync did not set the transparency of the blank area on the left to 0, so the blur cannot be ignored
This should be a problem with swaync, as this issue does not exist on other layers such as waybar
I have the same problem. It seems that swaync did not set the transparency of the blank area on the left to 0, so the blur cannot be ignored
This should be a problem with swaync, as this issue does not exist on other layers such as waybar
layer_effects "swaync-notification-window" {
blur enable;
blur_ignore_transparent true;
}
layer_effects "swaync-control-center" {
blur enable;
blur_ignore_transparent true;
}
will fix this in landscape mode. This issue is that in portrait mode when blur_ignore_transparent is enabled and there are transparent regions to cut out, then the blur will not align with the window/layer. This even occurs with waybar (see attached screenshot) making this 100% an issue with either swayfx or scenefx.
I have the same problem. It seems that swaync did not set the transparency of the blank area on the left to 0, so the blur cannot be ignored This should be a problem with swaync, as this issue does not exist on other layers such as waybar
layer_effects "swaync-notification-window" { blur enable; blur_ignore_transparent true; } layer_effects "swaync-control-center" { blur enable; blur_ignore_transparent true; }will fix this in landscape mode. This issue is that in portrait mode when
blur_ignore_transparentis enabled and there are transparent regions to cut out, then the blur will not align with the window/layer. This even occurs with waybar (see attached screenshot) making this 100% an issue with either swayfx or scenefx.![]()
are you saying that the problem arises specifically for rotated outputs?
are you saying that the problem arises specifically for rotated outputs?
Yes, the conditions appear to be:
- Any rotation aside from 0⁰
blur_ignore_transparentis enabled- There are transparent regions behind the layer that are ignored.
From an outside perspective (I'd like to get into contributing to swayfx/scenefx but am still need to take time to really understand the code), it feels like blur_ignore_transparent is creating an image that masks a layer's extents so that the blur only occurs in the non-transparent areas; however, that mask isn't being rotated with the display. It is, though, being transformed to the scale of the window's new extents. For instance, in the image I posted of my waybar above with a screen rotated 90⁰, the blurred stripes correspond to each of the modules—the blurring is just applied 90⁰ out of phase to the orientation of the bar (for reference, see the image attached to this post where the screen is not rotated).
Hmm, thanka for the report! Tagging @ErikReider for the swaync side of things so he's aware, I can take a look at the rotation issue
sorry,ignore what i say, this is a css setting error for my config.