picom: switch to mainline with spring physics animations
Update picom from dccsillag fork to colonelpanic8/picom spring-physics branch, which adds spring physics animation support to mainline picom. Spring curve syntax: spring(stiffness, dampening, mass, clamping) - stiffness: spring constant (higher = faster) - dampening: resistance (higher = less oscillation) - mass: inertia (higher = slower) - clamping: prevent overshoot (false for bounce effects) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -168,16 +168,15 @@ in
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
# Using mainline picom with spring physics animation support
|
||||||
|
# Branch: spring-physics on colonelpanic8/picom
|
||||||
picom = prev.picom.overrideAttrs (old: {
|
picom = prev.picom.overrideAttrs (old: {
|
||||||
src = prev.fetchFromGitHub {
|
src = prev.fetchFromGitHub {
|
||||||
repo = "picom";
|
repo = "picom";
|
||||||
owner = "dccsillag";
|
owner = "colonelpanic8";
|
||||||
rev = "51b21355696add83f39ccdb8dd82ff5009ba0ae5";
|
rev = "spring-physics";
|
||||||
sha256 = "sha256-crCwRJd859DCIC0pEerpDqdX2j8ZrNAzVaSSB3mTPN8==";
|
sha256 = "sha256-sN15PffeRV6x+K2XjCxx2bIh0ujb/C1GAGTUuo2wPL4=";
|
||||||
};
|
};
|
||||||
nativeBuildInputs = old.nativeBuildInputs ++ [final.pcre final.gnugrep.pcre2 final.asciidoc];
|
|
||||||
buildInputs = old.buildInputs ++ [final.pcre];
|
|
||||||
nativeInstallCheckInputs = [];
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
dontCheck = true;
|
dontCheck = true;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -98,25 +98,73 @@ makeEnable config "myModules.xmonad" true {
|
|||||||
backend = "glx";
|
backend = "glx";
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
animations = true;
|
# Spring physics animations (mainline picom with spring-physics branch)
|
||||||
animation-window-mass = 1;
|
# Syntax: spring(stiffness, dampening, mass) or spring(stiffness, dampening, mass, clamping)
|
||||||
animation-dampening = 20;
|
# Set clamping to false for bounce/overshoot effects
|
||||||
animation-stiffness = 250;
|
animations = [
|
||||||
animation-clamping = false;
|
# Window move/resize animation with spring physics
|
||||||
animation-for-open-window = "zoom";
|
{
|
||||||
animation-for-unmap-window = "zoom";
|
triggers = ["geometry"];
|
||||||
animation-for-transient-window = "slide-down";
|
offset-x = {
|
||||||
|
curve = "spring(250, 20, 1, false)";
|
||||||
|
start = "window-x-before - window-x";
|
||||||
|
end = 0;
|
||||||
|
};
|
||||||
|
offset-y = {
|
||||||
|
curve = "spring(250, 20, 1, false)";
|
||||||
|
start = "window-y-before - window-y";
|
||||||
|
end = 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# Opacity fade animation
|
||||||
|
{
|
||||||
|
triggers = ["open" "show"];
|
||||||
|
opacity = {
|
||||||
|
curve = "cubic-bezier(0.25, 0.1, 0.25, 1)";
|
||||||
|
duration = 0.2;
|
||||||
|
start = 0;
|
||||||
|
end = "window-raw-opacity";
|
||||||
|
};
|
||||||
|
scale-x = {
|
||||||
|
curve = "cubic-bezier(0.25, 0.1, 0.25, 1)";
|
||||||
|
duration = 0.2;
|
||||||
|
start = 0.9;
|
||||||
|
end = 1;
|
||||||
|
};
|
||||||
|
scale-y = {
|
||||||
|
curve = "cubic-bezier(0.25, 0.1, 0.25, 1)";
|
||||||
|
duration = 0.2;
|
||||||
|
start = 0.9;
|
||||||
|
end = 1;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
triggers = ["close" "hide"];
|
||||||
|
opacity = {
|
||||||
|
curve = "cubic-bezier(0.25, 0.1, 0.25, 1)";
|
||||||
|
duration = 0.2;
|
||||||
|
start = "window-raw-opacity";
|
||||||
|
end = 0;
|
||||||
|
};
|
||||||
|
scale-x = {
|
||||||
|
curve = "cubic-bezier(0.25, 0.1, 0.25, 1)";
|
||||||
|
duration = 0.2;
|
||||||
|
start = 1;
|
||||||
|
end = 0.9;
|
||||||
|
};
|
||||||
|
scale-y = {
|
||||||
|
curve = "cubic-bezier(0.25, 0.1, 0.25, 1)";
|
||||||
|
duration = 0.2;
|
||||||
|
start = 1;
|
||||||
|
end = 0.9;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
fade-in-step = 0.028;
|
fade-in-step = 0.028;
|
||||||
fade-out-step = 0.028;
|
fade-out-step = 0.028;
|
||||||
fading = true;
|
fading = true;
|
||||||
};
|
|
||||||
|
|
||||||
wintypes = {
|
|
||||||
dock = {animation = "slide-down";};
|
|
||||||
toolbar = {animation = "slide-down";};
|
|
||||||
};
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
focus-exclude = ["class_g ?= 'rofi'" "class_g ?= 'Steam'"];
|
focus-exclude = ["class_g ?= 'rofi'" "class_g ?= 'Steam'"];
|
||||||
rounded-corners-exclude = [
|
rounded-corners-exclude = [
|
||||||
"! name~=''" # Qtile == empty wm_class..
|
"! name~=''" # Qtile == empty wm_class..
|
||||||
|
|||||||
Reference in New Issue
Block a user