Niri added shaders, fish, DMS, btop, cava
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
//Original code; https://github/XansiVA
|
||||
|
||||
animations {
|
||||
workspace-switch {
|
||||
spring damping-ratio=0.80 stiffness=523 epsilon=0.0001
|
||||
}
|
||||
window-open {
|
||||
duration-ms 1400
|
||||
curve "ease-out-expo"
|
||||
custom-shader r"
|
||||
float ease_curve(float x) {
|
||||
return x < 0.5 ? 4.0*x*x*x : 1.0 - pow(-2.0*x + 2.0, 3.0)/2.0;
|
||||
}
|
||||
|
||||
vec4 open_color(vec3 coords_geo, vec3 size_geo) {
|
||||
float t = niri_clamped_progress;
|
||||
float prog = ease_curve(t);
|
||||
|
||||
// bottom-right corner
|
||||
vec2 start = vec2(1.0, 1.0);
|
||||
|
||||
// compute distance along diagonal from corner
|
||||
vec2 p = coords_geo.xy;
|
||||
vec2 dir = vec2(-1.0, -1.0); // vector toward top-left
|
||||
float dist = dot(p - start, dir);
|
||||
|
||||
// normalize distance to max diagonal (from corner to opposite)
|
||||
float max_diag = 2.0;
|
||||
float norm_dist = dist / max_diag;
|
||||
|
||||
// pixels not yet reached by sweep are invisible
|
||||
if (norm_dist > prog) {
|
||||
return vec4(0.0);
|
||||
}
|
||||
|
||||
// sample normally
|
||||
vec3 coords_tex = niri_geo_to_tex * coords_geo;
|
||||
vec4 col = texture2D(niri_tex, coords_tex.xy);
|
||||
|
||||
return col;
|
||||
}"
|
||||
}
|
||||
|
||||
|
||||
window-close {
|
||||
duration-ms 1400
|
||||
curve "ease-out-expo"
|
||||
custom-shader r"
|
||||
// ease-in-out cubic curve helper
|
||||
float ease_curve(float x) {
|
||||
return x < 0.5 ? 4.0*x*x*x : 1.0 - pow(-2.0*x + 2.0, 3.0)/2.0;
|
||||
}
|
||||
|
||||
vec4 close_color(vec3 coords_geo, vec3 size_geo) {
|
||||
float t = niri_clamped_progress;
|
||||
|
||||
|
||||
float prog = ease_curve(t);
|
||||
|
||||
// choose corner: 0=top-left,1=top-right,2=bottom-left,3=bottom-right
|
||||
|
||||
int corner = 0;
|
||||
vec2 start;
|
||||
if (corner == 0) start = vec2(0.0,0.0);
|
||||
else if (corner == 1) start = vec2(1.0,0.0);
|
||||
else if (corner == 2) start = vec2(0.0,1.0);
|
||||
else start = vec2(1.0,1.0);
|
||||
|
||||
|
||||
// compute distance along diagonal from corner
|
||||
|
||||
vec2 p = coords_geo.xy;
|
||||
float dist = dot(p - start, vec2(1.0,1.0));
|
||||
|
||||
// normalize distance to max diagonal
|
||||
float max_diag = 2.0; // max of vec2(1,1)
|
||||
float norm_dist = dist / max_diag;
|
||||
|
||||
|
||||
// If pixel is behind the sweeping line, make it invisible
|
||||
|
||||
if (norm_dist <= prog) {
|
||||
return vec4(0.0);
|
||||
}
|
||||
|
||||
// sample normally
|
||||
vec3 coords_tex = niri_geo_to_tex * coords_geo;
|
||||
vec4 col = texture2D(niri_tex, coords_tex.xy);
|
||||
|
||||
return col;
|
||||
}"
|
||||
}
|
||||
|
||||
|
||||
horizontal-view-movement {
|
||||
spring damping-ratio=0.85 stiffness=423 epsilon=0.0001
|
||||
}
|
||||
window-movement {
|
||||
spring damping-ratio=0.75 stiffness=323 epsilon=0.0001
|
||||
}
|
||||
window-resize {
|
||||
custom-shader r"
|
||||
vec4 resize_color(vec3 coords_curr_geo, vec3 size_curr_geo) {
|
||||
vec3 coords_tex_next = niri_geo_to_tex_next * coords_curr_geo;
|
||||
vec4 color = texture2D(niri_tex_next, coords_tex_next.st);
|
||||
return color;
|
||||
}
|
||||
"
|
||||
}
|
||||
config-notification-open-close {
|
||||
spring damping-ratio=0.65 stiffness=923 epsilon=0.001
|
||||
}
|
||||
screenshot-ui-open {
|
||||
duration-ms 200
|
||||
curve "ease-out-quad"
|
||||
}
|
||||
overview-open-close {
|
||||
spring damping-ratio=0.85 stiffness=800 epsilon=0.0001
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user