This commit is contained in:
coast 2025-07-12 07:34:05 +03:30
parent ff525961b3
commit 33fc8e201c
2 changed files with 405 additions and 130 deletions

View file

@ -0,0 +1,262 @@
# Animations for NORMAL windows.
{
match = "window_type = 'normal'";
animations = (
{
triggers = ["close"];
opacity = {
curve = "cubic-bezier(0,1,1,1)";
duration = 0.6;
start = "window-raw-opacity-before";
end = 0;
};
blur-opacity = "opacity";
shadow-opacity = "opacity";
scale-x = {
curve = "cubic-bezier(0,1.3,1,1)";
duration = 0.6;
start = 1;
end = 0.6;
};
scale-y = "scale-x";
offset-x = "(1 - scale-x) / 2 * window-width";
offset-y = "(1 - scale-y) / 2 * window-height";
shadow-scale-x = "scale-x";
shadow-scale-y = "scale-y";
shadow-offset-x = "offset-x";
shadow-offset-y = "offset-y";
},
# Animación de APERTURA
{
triggers = ["open"];
opacity = {
curve = "cubic-bezier(0,1,1,1)";
duration = 0.5;
start = 0;
end = "window-raw-opacity";
};
blur-opacity = "opacity";
shadow-opacity = "opacity";
scale-x = {
curve = "cubic-bezier(0,1.3,1,1)";
duration = 0.5;
start = 0.6;
end = 1;
};
scale-y = "scale-x";
offset-x = "(1 - scale-x) / 2 * window-width";
offset-y = "(1 - scale-y) / 2 * window-height";
shadow-scale-x = "scale-x";
shadow-scale-y = "scale-y";
shadow-offset-x = "offset-x";
shadow-offset-y = "offset-y";
},
# Animación de GEOMETRÍA (modificada para ambos casos)
{
triggers = ["geometry"];
# Cuando la ventana CRECE (abrir/mover/redimensionar)
scale-x = {
curve = "cubic-bezier(0,0,0,1.28)";
duration = 0.5;
start = "window-width-before / window-width";
end = 1;
};
# Cuando la ventana ENCOGE (cerrar/mover/redimensionar)
scale-x-reverse = {
curve = "cubic-bezier(0,0,0,1.28)";
duration = 0.6;
start = "window-width / window-width-before";
end = 1;
};
scale-y = {
curve = "cubic-bezier(0,0,0,1.28)";
duration = 0.5;
start = "window-height-before / window-height";
end = 1;
};
scale-y-reverse = {
curve = "cubic-bezier(0,0,0,1.28)";
duration = 0.6;
start = "window-height / window-height-before";
end = 1;
};
offset-x = {
curve = "cubic-bezier(0,0,0,1.28)";
duration = 0.5;
start = "window-x-before - window-x";
end = 0;
};
offset-y = {
curve = "cubic-bezier(0,0,0,1.28)";
duration = 0.5;
start = "window-y-before - window-y";
end = 0;
};
shadow-scale-x = "scale-x";
shadow-scale-y = "scale-y";
shadow-offset-x = "offset-x";
shadow-offset-y = "offset-y";
}
)
},
# Animations for Rofi launchers.
{
match = "class_g = 'Rofi'";
animations = (
{
triggers = ["close", "hide"];
preset = "disappear";
duration = 0.05;
scale = 0.5;
},
{
triggers = ["open", "show"];
preset = "appear";
duration = 0.2;
scale = 0.5;
}
)
},
# Animations for Dunst notifications.
{
match = "class_g = 'dunst'";
animations = (
{
triggers = ["close", "hide"];
preset = "fly-out"; #-dunst-close-preset
direction = "up"; #-dunst-close-direction
duration = 0.2;
},
{
triggers = ["open", "show"];
preset = "fly-in"; #-dunst-open-preset
direction = "up"; #-dunst-open-direction
duration = 0.2;
}
)
},
# Animations for Jgmenu.
{
match = "class_g = 'jgmenu'";
animations = (
{
triggers = ["close", "hide"];
preset = "disappear";
duration = 0.08;
scale = 0.5;
},
{
triggers = ["open", "show"];
preset = "appear";
duration = 0.15;
scale = 0.5;
}
)
},
# Animations for Scratchpad.
{
match = "class_g = 'bspwm-scratch'";
animations = (
{
triggers = ["close", "hide"];
preset = "fly-out";
direction = "up";
duration = 0.2;
},
{
triggers = ["open", "show"];
preset = "fly-in";
direction = "up";
duration = 0.2;
}
)
},
# Animations for Eww Profile card.
{
match = "name = 'Eww - launchermenu'";
animations = (
{
triggers = ["close", "hide"];
preset = "slide-out";
direction = "right";
duration = 0.2;
},
{
triggers = ["open", "show"];
preset = "slide-in";
direction = "right";
duration = 0.2;
}
)
},
# Animations for Eww Music player.
{
match = "name = 'Eww - music'";
animations = (
{
triggers = ["close", "hide"];
preset = "slide-out";
direction = "up";
duration = 0.2;
},
{
triggers = ["open", "show"];
preset = "slide-in";
direction = "up";
duration = 0.2;
}
)
},
# Animations for Eww calendar.
{
match = "name = 'Eww - date'";
animations = (
{
triggers = ["close", "hide"];
preset = "fly-out";
direction = "up";
duration = 0.2;
},
{
triggers = ["open", "show"];
preset = "fly-in";
direction = "up";
duration = 0.2;
}
)
},
# Animations for Eww Cheatsheet.
{
match = "name = 'Eww - csheet'";
animations = (
{
triggers = ["close", "hide"];
preset = "disappear";
duration = 0.08;
scale = 0.5;
},
{
triggers = ["open", "show"];
preset = "appear";
duration = 0.15;
scale = 0.5;
}
)
}

View file

@ -1,147 +1,160 @@
animations = true;
animation-stiffness-in-tag = 120;
animation-stiffness-tag-change = 90.0;
animation-window-mass = 0.3;
animation-dampening = 5;
animation-clamping = false;
## ----- Shadows ----- ##
animation-for-open-window = "zoom";
animation-for-unmap-window = "zoom";
animation-for-transient-window = "zoom";
animation-for-prev-tag = "zoom";
animation-for-next-tag = "zoom";
animation-for-workspace-switch-in = "zoom";
animation-for-workspace-switch-out = "zoom";
#shadow = true;
animation-max-size = 20;
shadow-radius = 1;
shadow-opacity = .1;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-color = "#000000"
## ----- Fading ----- ##
enable-fading-prev-tag = true;
enable-fading-next-tag = true;
fading = true;
fade-in-step = 0.07;
fade-out-step = 0.06;
fade-delta = 5;
shadow = true;
shadow-radius = 12;
shadow-offset-x = -5;
shadow-offset-y = -5;
shadow-opacity = 0.7;
shadow-color = "#000000";
shadow-exclude = [
"class_g = 'slop'",
"class_g = 'maim'",
"class_g = 'import'",
"class_g = 'imagemagick'",
"name = 'slop'",
"name = 'select-region'",
"name = 'select region'",
"window_type = 'utility'",
"window_type = 'notification'",
"window_type = 'dock'",
"_NET_WM_WINDOW_TYPE@:32a *= '_NET_WM_WINDOW_TYPE_DOCK'"
];
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-delta = 5
no-fading-openclose = false
no-fading-destroyed-argb = false
blur-background = true;
blur-background-frame = true;
blur-method = "dual_kawase";
blur-strength = 6;
blur-kern = "3x3box";
blur-background-fixed = false;
blur-exclude = [
"class_g = 'slop'",
"class_g = 'maim'",
"class_g = 'import'",
"class_g = 'imagemagick'",
"name = 'slop'",
"name = 'select-region'",
"name = 'select region'",
"window_type = 'utility'",
"window_type = 'notification'",
"window_type = 'dock'",
"_NET_WM_WINDOW_TYPE@:32a *= '_NET_WM_WINDOW_TYPE_DOCK'"
];
## ----- Transparency ----- ##
rounded-corners-exclude = [
"class_g = 'slop'",
"class_g = 'maim'"
];
frame-opacity = 1.0;
opacity-rule = [
"93:class_g = 'discord'",
"93:class_g = 'spotify'",
"80:class_g = 'st'",
"80:class_g = 'urxvt'",
"80:class_g = 'dmenu'",
"85:class_g = 'dwm'",
"100:class_g = 'floorp'",
"100:class_g = 'firefox'",
"100:class_g = 'slop'"
];
# inactive-dim-fixed = true
focus-exclude = [
"class_g = 'slop'",
"class_g = 'maim'"
];
## ----- Corners ----- ##
animation-exclude = [
"class_g = 'slop'",
"class_g = 'maim'"
];
corner-radius = 0
#################################
# General Settings #
#################################
# Available backends "xrender" "glx" "egl"
backend = "xrender"
daemon = false;
backend = "glx";
dithered-present = false;
vsync = true;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
use-ewmh-active-win = true;
unredir-if-possible = false;
detect-transient = true;
glx-no-stencil = true;
use-damage = true;
xrender-sync-fence = true;
window-shader-fg = "default";
transparent-clipping = false;
log-level = "warn";
wintypes: {
tooltip = {
fade = true;
shadow = true;
opacity = 0.95;
focus = true;
animations = true;
animation-for-open-window = "zoom";
};
dock = {
shadow = false;
clip-shadow-above = true;
};
dnd = {
shadow = false;
};
popup_menu = {
opacity = 0.95;
animations = true;
shadow = true;
animation-for-open-window = "zoom";
};
dropdown_menu = {
opacity = 0.95;
animations = true;
shadow = true;
animation-for-open-window = "zoom";
};
unknown = {
fade = false;
shadow = false;
opacity = 1.0;
focus = false;
full-shadow = false;
clip-shadow-above = false;
animations = false;
};
};
use-damage = true;
# xrender-sync-fence = false
# transparent-clipping = false
#################################
# Rules #
#################################
blur:
{
method = "dual_kawase";
size = 10;
deviation = 2.5;
}
rules: (
{
blur-background = true;
blur-background-fixed = true;
fade = false;
},
{
match = "window_type = 'dock'";
corner-radius = 0;
shadow = false;
},
{
match = "class_g = 'dwm' || class_g = 'Polybar' || class_g = 'dmenu'";
corner-radius = 0;
blur-background = true;
opacity = 0.80;
shadow = false;
},
{
match = "fullscreen = true";
corner-radius = 0;
},
{
match = "window_type = 'normal'";
fade = true; #-fade-switch
shadow = true; #-shadow-switch
},
{
match = "window_type = 'dialog'";
shadow = true; #-shadow-switch
},
{
match = "window_type = 'tooltip'";
corner-radius = 0;
opacity = 0.90;
},
{
match = "window_type = 'dock'";
corner-radius = 0;
fade = true;
},
{
match = "window_type = 'dropdown_menu' || window_type = 'menu' || window_type = 'popup' || window_type = 'popup_menu'";
corner-radius = 0;
},
{
match = "class_g = 'Alacritty' || class_g = 'kitty' || class_g = 'FloaTerm'";
opacity = 1.0; #-term-opacity-switch
blur-background = true; #-blur-switch
},
{
match = "class_g = 'Polybar' || "
"class_g = 'eww-bar' || "
"class_g = 'Viewnior' || "
"class_g = 'Rofi' || "
"class_g = 'mpv' || "
"class_g = 'bspwm-scratch' || "
"class_g = 'Dunst' || "
"class_g = 'retroarch'";
corner-radius = 0;
},
{
match = "name = 'Notification' || "
"class_g ?= 'Notify-osd' || "
"class_g = 'Dunst' || "
"class_g = 'Polybar' || "
"class_g = 'Eww' || "
"class_g = 'jgmenu' || "
"class_g = 'scratch' || "
"class_g = 'Spotify' || "
"class_g = 'retroarch' || "
"class_g = 'firefox' || "
"class_g = 'Rofi' || "
"class_g = 'Screenkey' || "
"class_g = 'mpv' || "
"class_g = 'Viewnior' || "
"_GTK_FRAME_EXTENTS@";
shadow = false;
},
@include "picom-animations.conf"
)