diff --git a/config.conf b/config.conf index 188370b..b2544d4 100644 --- a/config.conf +++ b/config.conf @@ -3,6 +3,7 @@ # Window effect blur=0 blur_layer=0 +blur_optimized=1 blur_params_num_passes = 2 blur_params_radius = 5 blur_params_noise = 0.02 diff --git a/src/config/parse_config.h b/src/config/parse_config.h index eeee7c2..5eab1cd 100644 --- a/src/config/parse_config.h +++ b/src/config/parse_config.h @@ -199,6 +199,7 @@ typedef struct { int blur; int blur_layer; + int blur_optimized; int border_radius; struct blur_data blur_params; int shadows; @@ -895,6 +896,8 @@ void parse_config_line(Config *config, const char *line) { config->blur = atoi(value); } else if (strcmp(key, "blur_layer") == 0) { config->blur_layer = atoi(value); + } else if (strcmp(key, "blur_optimized") == 0) { + config->blur_optimized = atoi(value); } else if (strcmp(key, "border_radius") == 0) { config->border_radius = atoi(value); } else if (strcmp(key, "blur_params_num_passes") == 0) { @@ -2089,6 +2092,7 @@ void override_config(void) { blur = CLAMP_INT(config.blur, 0, 1); blur_layer = CLAMP_INT(config.blur_layer, 0, 1); + blur_optimized = CLAMP_INT(config.blur_optimized, 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); @@ -2219,6 +2223,7 @@ void set_value_default() { config.blur = blur; config.blur_layer = blur_layer; + config.blur_optimized = blur_optimized; 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.h b/src/config/preset.h index bb1020c..49bad8b 100644 --- a/src/config/preset.h +++ b/src/config/preset.h @@ -189,6 +189,7 @@ int border_radius = 0; int border_radius_location_default = CORNER_LOCATION_ALL; int blur = 0; int blur_layer = 0; +int blur_optimized = 1; struct blur_data blur_params; diff --git a/src/maomao.c b/src/maomao.c index 9ed0367..ef7fedb 100644 --- a/src/maomao.c +++ b/src/maomao.c @@ -4505,8 +4505,12 @@ static void iter_xdg_scene_buffers(struct wlr_scene_buffer *buffer, int sx, if (blur && c) { 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); + if (blur_optimized) { + wlr_scene_buffer_set_backdrop_blur_optimized(buffer, true); + } else { + wlr_scene_buffer_set_backdrop_blur_optimized(buffer, false); + } } else { wlr_scene_buffer_set_backdrop_blur(buffer, false); } @@ -7803,7 +7807,8 @@ void smartmovewin(const Arg *arg) { }; } ny = tar == 99999 ? ny : tar; - ny = MIN(ny, c->mon->w.y + c->mon->w.height - c->geom.height - c->mon->gappov); + ny = MIN(ny, c->mon->w.y + c->mon->w.height - c->geom.height - + c->mon->gappov); break; case LEFT: tar = -99999; @@ -7841,7 +7846,8 @@ void smartmovewin(const Arg *arg) { }; } nx = tar == 99999 ? nx : tar; - nx = MIN(nx, c->mon->w.x + c->mon->w.width - c->geom.width - c->mon->gappoh); + nx = MIN(nx, c->mon->w.x + c->mon->w.width - c->geom.width - + c->mon->gappoh); break; }