diff --git a/config.conf b/config.conf index 8bb9d0b..82c20f5 100644 --- a/config.conf +++ b/config.conf @@ -4,6 +4,7 @@ animation_type=slide animation_fade_in=1 zoom_initial_ratio=0.5 fadein_begin_opacity=0.5 +fadeout_begin_opacity=0.5 animation_duration_move=500 animation_duration_open=400 animation_duration_tag=350 diff --git a/maomao.c b/maomao.c index e253944..147a38e 100644 --- a/maomao.c +++ b/maomao.c @@ -747,7 +747,7 @@ void fadeout_client_animation_next_tick(Client *c) { .height = height, }; - double opacity = MAX(1 - 0.4 - animation_passed, 0); + double opacity = MAX(fadeout_begin_opacity - animation_passed, 0); wlr_scene_node_for_each_buffer(&c->snapshot_scene->node, scene_buffer_apply_opacity, &opacity); diff --git a/parse_config.h b/parse_config.h index 4887167..52a7da5 100644 --- a/parse_config.h +++ b/parse_config.h @@ -63,6 +63,7 @@ typedef struct { char animation_fade_in; float zoom_initial_ratio; float fadein_begin_opacity; + float fadeout_begin_opacity; uint32_t animation_duration_move; uint32_t animation_duration_open; uint32_t animation_duration_tag; @@ -447,6 +448,8 @@ void parse_config_line(Config *config, const char *line) { config->zoom_initial_ratio = atof(value); } else if (strcmp(key, "fadein_begin_opacity") == 0) { config->fadein_begin_opacity = atof(value); + } else if (strcmp(key, "fadeout_begin_opacity") == 0) { + config->fadeout_begin_opacity = atof(value); } else if (strcmp(key, "animation_duration_move") == 0) { config->animation_duration_move = atoi(value); } else if (strcmp(key, "animation_duration_open") == 0) { @@ -876,6 +879,7 @@ void override_config(void) { animation_fade_in = config.animation_fade_in; zoom_initial_ratio = config.zoom_initial_ratio; fadein_begin_opacity = config.fadein_begin_opacity; + fadeout_begin_opacity = config.fadeout_begin_opacity; animation_duration_move = config.animation_duration_move; animation_duration_open = config.animation_duration_open; animation_duration_tag = config.animation_duration_tag; @@ -927,7 +931,8 @@ void set_value_default() { config.animations = 1; // 是否启用动画 config.animation_fade_in = 1; // Enable animation fade in config.zoom_initial_ratio = 0.5; // 动画起始窗口比例 -config.fadein_begin_opacity = 0; // Begin opac window ratio for animations +config.fadein_begin_opacity = 0.5; // Begin opac window ratio for animations +config.fadeout_begin_opacity = 0.5; config.animation_duration_move = 500; // Animation move speed config.animation_duration_open = 400; // Animation open speed config.animation_duration_tag = 300; // Animation tag speed diff --git a/preset_config.h b/preset_config.h index 80b86d3..0224ccd 100644 --- a/preset_config.h +++ b/preset_config.h @@ -9,7 +9,8 @@ char *animation_type = "slide"; // 是否启用动画 //slide,zoom int animations = 1; // 是否启用动画 char animation_fade_in = 1; // Enable animation fade in float zoom_initial_ratio = 0.5; // 动画起始窗口比例 -float fadein_begin_opacity = 0; // Begin opac window ratio for animations +float fadein_begin_opacity = 0.5; // Begin opac window ratio for animations +float fadeout_begin_opacity = 0.5; // Begin opac window ratio for animations uint32_t animation_duration_move = 500; // Animation move speed uint32_t animation_duration_open = 400; // Animation open speed uint32_t animation_duration_tag = 300; // Animation tag speed