Niri added shaders, fish, DMS, btop, cava
This commit is contained in:
@@ -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);
|
||||
}
|
||||
"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user