Niri added shaders, fish, DMS, btop, cava

This commit is contained in:
2026-05-08 20:33:29 +02:00
parent 6cac58b55a
commit 810de91316
23 changed files with 1473 additions and 45 deletions
@@ -0,0 +1,77 @@
animations {
workspace-switch {
duration-ms 300
curve "ease-out-cubic"
}
window-open {
duration-ms 400
curve "linear"
custom-shader r"
vec4 pixelate_open(vec3 coords_geo, vec3 size_geo) {
// Discard pixels outside window bounds
if (coords_geo.x < 0.0 || coords_geo.x > 1.0 || coords_geo.y < 0.0 || coords_geo.y > 1.0) {
return vec4(0.0);
}
float progress = niri_clamped_progress;
float border_width = 0.008; // Adjust based on your border size
vec2 coords = coords_geo.xy;
// Check if we're in the border region
bool in_border = coords.x < border_width || coords.x > (1.0 - border_width) ||
coords.y < border_width || coords.y > (1.0 - border_width);
// Only pixelate the inner content, not the border
if (!in_border) {
float pixel_size = (1.0 - progress) * 0.1;
if (pixel_size > 0.0) {
coords = floor(coords / pixel_size) * pixel_size + pixel_size * 0.5;
}
// Clamp sampling to avoid border area
coords = clamp(coords, border_width, 1.0 - border_width);
}
vec3 new_coords = vec3(coords, 1.0);
vec3 coords_tex = niri_geo_to_tex * new_coords;
vec4 color = texture2D(niri_tex, coords_tex.st);
color.a *= progress;
return color;
}
vec4 open_color(vec3 coords_geo, vec3 size_geo) {
return pixelate_open(coords_geo, size_geo);
}
"
}
window-close {
duration-ms 400
curve "linear"
custom-shader r"
vec4 pixelate_close(vec3 coords_geo, vec3 size_geo) {
// Discard pixels outside window bounds
if (coords_geo.x < 0.0 || coords_geo.x > 1.0 || coords_geo.y < 0.0 || coords_geo.y > 1.0) {
return vec4(0.0);
}
float progress = niri_clamped_progress;
float border_width = 0.008;
vec2 coords = coords_geo.xy;
// Check if we're in the border region
bool in_border = coords.x < border_width || coords.x > (1.0 - border_width) ||
coords.y < border_width || coords.y > (1.0 - border_width);
// Only pixelate the inner content, not the border
if (!in_border) {
float pixel_size = progress * 0.1;
if (pixel_size > 0.0) {
coords = floor(coords / pixel_size) * pixel_size + pixel_size * 0.5;
}
// Clamp sampling to avoid border area
coords = clamp(coords, border_width, 1.0 - border_width);
}
vec3 new_coords = vec3(coords, 1.0);
vec3 coords_tex = niri_geo_to_tex * new_coords;
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 pixelate_close(coords_geo, size_geo);
}
"
}
}