From f07be79f317d1d30d6e8613ce601ef2abd389e63 Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Wed, 18 Jun 2025 10:51:23 +0800 Subject: [PATCH] feat: add blur_layer option --- src/config/parse_config.h | 5 +++++ src/config/preset_config.h | 1 + src/maomao.c | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/config/parse_config.h b/src/config/parse_config.h index eb55396..3ea3c67 100644 --- a/src/config/parse_config.h +++ b/src/config/parse_config.h @@ -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; diff --git a/src/config/preset_config.h b/src/config/preset_config.h index 1b5a1f0..e898689 100644 --- a/src/config/preset_config.h +++ b/src/config/preset_config.h @@ -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; diff --git a/src/maomao.c b/src/maomao.c index 1fb6286..154273e 100644 --- a/src/maomao.c +++ b/src/maomao.c @@ -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);