nix-config/modules/wm/hyprland/animations.nix
2026-01-07 16:39:44 +01:00

143 lines
3.1 KiB
Nix

{
lib,
config,
...
}: let
inherit (lib) mkIf;
cfg = config.horseman.wm.hyprland;
in {
config = mkIf cfg.enable {
nix-hyprland = {
animations = {
enabled = true;
beziers = [
{
name = "easeOutQuint";
startX = 0.23;
startY = 1.0;
endX = 0.32;
endY = 1.0;
}
{
name = "easeInOutCubic";
startX = 0.65;
startY = 0.05;
endX = 0.36;
endY = 1.0;
}
{
name = "linear";
startX = 0.0;
startY = 0.0;
endX = 1.0;
endY = 1.0;
}
{
name = "almostLinear";
startX = 0.5;
startY = 0.5;
endX = 0.75;
endY = 1.0;
}
{
name = "quick";
startX = 0.15;
startY = 0.0;
endX = 0.1;
endY = 1.0;
}
];
animations = [
{
name = "global";
speed = 10.0;
curve = "default";
}
{
name = "border";
speed = 5.39;
curve = "easeOutQuint";
}
{
name = "windows";
speed = 4.79;
curve = "easeOutQuint";
}
{
name = "windowsIn";
speed = 4.1;
curve = "easeOutQuint";
style = "popin 87%";
}
{
name = "windowsOut";
speed = 1.49;
curve = "linear";
style = "popin 87%";
}
{
name = "fadeIn";
speed = 1.73;
curve = "almostLinear";
}
{
name = "fadeOut";
speed = 1.46;
curve = "almostLinear";
}
{
name = "fade";
speed = 3.03;
curve = "quick";
}
{
name = "layers";
speed = 3.81;
curve = "easeOutQuint";
}
{
name = "layersIn";
speed = 4.0;
curve = "easeOutQuint";
style = "fade";
}
{
name = "layersOut";
speed = 1.5;
curve = "linear";
style = "fade";
}
{
name = "fadeLayersIn";
speed = 1.79;
curve = "almostLinear";
}
{
name = "fadeLayersOut";
speed = 1.39;
curve = "almostLinear";
}
{
name = "workspaces";
speed = 1.94;
curve = "almostLinear";
style = "fade";
}
{
name = "workspacesIn";
speed = 1.21;
curve = "almostLinear";
style = "fade";
}
{
name = "workspacesOut";
speed = 1.94;
curve = "almostLinear";
style = "fade";
}
];
};
};
};
}