diff --git a/config.conf b/config.conf index 87eb814..7aa1dd4 100644 --- a/config.conf +++ b/config.conf @@ -13,6 +13,7 @@ blur_params_saturation = 1.2 shadows = 0 layer_shadows = 0 +shadow_only_floating = 1 shadows_size = 10 shadows_blur = 15 shadows_position_x = 0 diff --git a/src/config/parse_config.h b/src/config/parse_config.h index e6fdf4c..17c8a75 100644 --- a/src/config/parse_config.h +++ b/src/config/parse_config.h @@ -217,6 +217,7 @@ typedef struct { int border_radius; struct blur_data blur_params; int shadows; + int shadow_only_floating; int layer_shadows; unsigned int shadows_size; float shadows_blur; @@ -940,6 +941,8 @@ void parse_config_line(Config *config, const char *line) { config->blur_params.saturation = atof(value); } else if (strcmp(key, "shadows") == 0) { config->shadows = atoi(value); + } else if (strcmp(key, "shadow_only_floating") == 0) { + config->shadow_only_floating = atoi(value); } else if (strcmp(key, "layer_shadows") == 0) { config->layer_shadows = atoi(value); } else if (strcmp(key, "shadows_size") == 0) { @@ -2218,6 +2221,7 @@ void override_config(void) { blur_params.contrast = CLAMP_FLOAT(config.blur_params.contrast, 0, 1); blur_params.saturation = CLAMP_FLOAT(config.blur_params.saturation, 0, 1); shadows = CLAMP_INT(config.shadows, 0, 1); + shadow_only_floating = CLAMP_INT(config.shadow_only_floating, 0, 1); layer_shadows = CLAMP_INT(config.layer_shadows, 0, 1); shadows_size = CLAMP_INT(config.shadows_size, 0, 100); shadows_blur = CLAMP_INT(config.shadows_blur, 0, 100); @@ -2358,6 +2362,7 @@ void set_value_default() { config.blur_params.contrast = blur_params_contrast; config.blur_params.saturation = blur_params_saturation; config.shadows = shadows; + config.shadow_only_floating = shadow_only_floating; config.layer_shadows = layer_shadows; config.shadows_size = shadows_size; config.shadows_blur = shadows_blur; diff --git a/src/config/preset.h b/src/config/preset.h index 9468074..ae854e7 100644 --- a/src/config/preset.h +++ b/src/config/preset.h @@ -192,6 +192,7 @@ float blur_params_contrast = 0.9; float blur_params_saturation = 1.2; int shadows = 0; +int shadow_only_floating = 1; int layer_shadows = 0; unsigned int shadows_size = 10; double shadows_blur = 15; diff --git a/src/maomao.c b/src/maomao.c index ef23986..8742fcb 100644 --- a/src/maomao.c +++ b/src/maomao.c @@ -1214,7 +1214,7 @@ void client_draw_shadow(Client *c) { if (c->iskilling || !client_surface(c)->mapped) return; - if (!shadows || !c->isfloating) { + if (!shadows || (!c->isfloating && shadow_only_floating)) { wlr_scene_shadow_set_size(c->shadow, 0, 0); return; }