60 lines
2.0 KiB
KDL
60 lines
2.0 KiB
KDL
animations {
|
|
workspace-switch {
|
|
spring damping-ratio=0.85 stiffness=700 epsilon=0.0001
|
|
}
|
|
|
|
horizontal-view-movement {
|
|
spring damping-ratio=0.85 stiffness=700 epsilon=0.0001
|
|
}
|
|
|
|
window-open {
|
|
duration-ms 175
|
|
curve "ease-out-quad"
|
|
custom-shader r"
|
|
vec4 zoom_in(vec3 coords_geo, vec3 size_geo) {
|
|
float progress = niri_clamped_progress;
|
|
float scale = progress;
|
|
vec2 coords = (coords_geo.xy - vec2(0.5, 0.5)) * size_geo.xy;
|
|
coords = coords / scale;
|
|
coords_geo = vec3(coords / size_geo.xy + vec2(0.5, 0.5), 1.0);
|
|
vec3 coords_tex = niri_geo_to_tex * coords_geo;
|
|
vec4 color = texture2D(niri_tex, coords_tex.st);
|
|
color.a *= progress;
|
|
|
|
return color;
|
|
}
|
|
vec4 open_color(vec3 coords_geo, vec3 size_geo) {
|
|
return zoom_in(coords_geo, size_geo);
|
|
}
|
|
"
|
|
}
|
|
|
|
// Original by Lemmy: https://github.com/ItsLemmy
|
|
window-close {
|
|
duration-ms 200
|
|
curve "linear"
|
|
custom-shader r"
|
|
vec4 fall_and_rotate(vec3 coords_geo, vec3 size_geo) {
|
|
float progress = niri_clamped_progress * niri_clamped_progress;
|
|
vec2 coords = (coords_geo.xy - vec2(0.5, 1.0)) * size_geo.xy;
|
|
coords.y -= progress * 1440.0;
|
|
float random = (niri_random_seed - 0.5) / 2.0;
|
|
random = sign(random) - random;
|
|
float max_angle = 0.5 * random;
|
|
float angle = progress * max_angle;
|
|
mat2 rotate = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));
|
|
coords = rotate * coords;
|
|
coords_geo = vec3(coords / size_geo.xy + vec2(0.5, 1.0), 1.0);
|
|
vec3 coords_tex = niri_geo_to_tex * coords_geo;
|
|
vec4 color = texture2D(niri_tex, coords_tex.st);
|
|
color.a *= (1.0 - progress);
|
|
|
|
return color;
|
|
}
|
|
vec4 close_color(vec3 coords_geo, vec3 size_geo) {
|
|
return fall_and_rotate(coords_geo, size_geo);
|
|
}
|
|
"
|
|
}
|
|
}
|