feat: add blur_layer option

This commit is contained in:
DreamMaoMao 2025-06-18 10:51:23 +08:00
parent 08166c69bc
commit f07be79f31
3 changed files with 7 additions and 1 deletions

View file

@ -197,6 +197,7 @@ typedef struct {
double accel_speed;
int blur;
int blur_layer;
int border_radius;
struct blur_data blur_params;
int shadows;
@ -891,6 +892,8 @@ void parse_config_line(Config *config, const char *line) {
config->focus_cross_tag = atoi(value);
} else if (strcmp(key, "blur") == 0) {
config->blur = atoi(value);
} else if (strcmp(key, "blur_layer") == 0) {
config->blur_layer = atoi(value);
} else if (strcmp(key, "border_radius") == 0) {
config->border_radius = atoi(value);
} else if (strcmp(key, "blur_params_num_passes") == 0) {
@ -2081,6 +2084,7 @@ void override_config(void) {
smartgaps = CLAMP_INT(config.smartgaps, 0, 1);
blur = CLAMP_INT(config.blur, 0, 1);
blur_layer = CLAMP_INT(config.blur_layer, 0, 1);
border_radius = CLAMP_INT(config.border_radius, 0, 100);
blur_params.num_passes = CLAMP_INT(config.blur_params.num_passes, 0, 10);
blur_params.radius = CLAMP_INT(config.blur_params.radius, 0, 100);
@ -2209,6 +2213,7 @@ void set_value_default() {
config.accel_speed = accel_speed;
config.blur = blur;
config.blur_layer = blur_layer;
config.border_radius = border_radius;
config.blur_params.num_passes = blur_params_num_passes;
config.blur_params.radius = blur_params_radius;

View file

@ -187,6 +187,7 @@ float unfocused_opacity = 0.8;
int border_radius = 0;
int border_radius_location_default = CORNER_LOCATION_ALL;
int blur = 0;
int blur_layer = 0;
struct blur_data {
int num_passes;

View file

@ -3129,7 +3129,7 @@ static void iter_layer_scene_buffers(struct wlr_scene_buffer *buffer, int sx,
return;
}
if (blur && l) {
if (blur && blur_layer && l) {
wlr_scene_buffer_set_backdrop_blur(buffer, true);
wlr_scene_buffer_set_backdrop_blur_optimized(buffer, true);
wlr_scene_buffer_set_backdrop_blur_ignore_transparent(buffer, true);