#################################
# Shadows #
#################################
shadow = true;
shadow-radius = 8;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-exclude = [
"_GTK_FRAME_EXTENTS@",
"window_type = 'menu'",
# "window_type = 'dock'",
"window_type = 'dropdown_menu'",
"window_type = 'popup_menu'",
"window_type = 'tooltip'"
];
#################################
# Fading #
#################################
fading = true
fading = true;
fade-in-step = 0.04;
fade-out-step = 0.04;
#################################
# Transparency / Opacity #
#################################
inactive-dim=0
inactive-opacity = 0.8;
frame-opacity = 0.7;
inactive-opacity-override = false;
focus-exclude = [
"class_g = 'Rofi'",
];
# frame-opacity = 1;
active-opacity = 1;
inactive-opacity = 0.9;
dropdown_menu = { opacity = 1; }
popup_menu = { opacity = 1; }
#################################
# Corners #
#################################
# Sets the radius of rounded window corners. When > 0, the compositor will
# round the corners of windows. Does not interact well with
# `transparent-clipping`.
corner-radius = 6;
round-borders = 6;
# Exclude conditions for rounded corners.
rounded-corners-exclude = [
# "window_type = 'dock'",
"window_type = 'desktop'"
];
# frame-opacity = 1;
active-opacity = 1;
inactive-opacity = 0.9;
dropdown_menu = { opacity = 1; }
popup_menu = { opacity = 1; }
active-opacity-rule = []
opacity-rule = [
"100:_NET_WM_STATE@:32a = '_NET_WM_STATE_FULLSCREEN'",
# Syntax:
# ""<opacity>:class_g = 'Case sensitive appname'",
# Tip:
# 90 is same as global 0.9 opacity
"100:class_g = 'Polybar'",
"100:class_g = 'Rofi'",
"100:class_g = 'gwenview'",
"90:class_g = 'copyq'",
# "90:class_g = 'Alacritty' && focused",
"90:class_g = 'Chromium' && focused",
# "93:class_g = 'Code' && focused",
];
#################################
# Background-Blurring #
#################################
blur: {
method = "dual_kawase";
strength = 6;
}
blur-background-exclude = [
"_GTK_FRAME_EXTENTS@:c",
"class_g = 'Maim'",
"class_g = 'conky'",
"window_type = 'menu'",
"window_type = 'dock'",
"window_type = 'dropdown_menu'",
"window_type = 'popup_menu'",
"window_type = 'tooltip'",
];
#################################
# General Settings #
#################################
backend = "glx"
dithered-present = false;
vsync = true;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
unredir-if-possible = true;
detect-rounded-corners = true;
detect-client-opacity = true;
detect-transient = true;
use-damage = true;
log-level = "warn";
wintypes:
{
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true};
dock = { shadow = true; clip-shadow-above = false; }
# dnd = { shadow = true; }
dropdown_menu = { opacity = 0.9; }
};
#################################
# Animation Settings #
#################################
rules = ({
match = "WM_TRANSIENT_FOR@";
animations = ({
triggers = ["open", "show"];
opacity = {
curve = "linear";
duration = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
blur-opacity = {
curve = "linear";
duration = 0.1;
delay = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
shadow-opacity = "opacity";
scale-y = {
curve = "cubic-bezier(0.24, 0.64, 0.79, 0.98)";
duration = 0.15;
start = 0.8;
end = 1;
};
offset-y = "(-window-height/2) + (window-height/2) * scale-y";
shadow-scale-y = "scale-y";
shadow-offset-y = "offset-y";
},{
triggers = ["close", "hide"];
opacity = {
curve = "linear";
duration = 0.15;
start = "window-raw-opacity-before";
end = "0";
};
blur-opacity = 0;
shadow-opacity = "opacity";
scale-y = {
curve = "cubic-bezier(0.21, 0.02, 0.76, 0.36)";
duration = 0.15;
start = 1;
end = 0.7;
};
offset-y = "(-window-height/2) + (window-height/2) * scale-y";
shadow-scale-y = "scale-y";
shadow-offset-y = "offset-y";
});
}, {
match = "window_type = 'dropdown_menu' || window_type = 'popup_menu' || window_type = 'menu'";
animations = ({
triggers = ["open", "show"];
opacity = {
curve = "linear";
duration = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
blur-opacity = {
curve = "linear";
duration = 0.1;
delay = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
shadow-opacity = "opacity";
scale-y = {
curve = "cubic-bezier(0.24, 0.64, 0.79, 0.98)";
duration = 0.15;
start = 0.8;
end = 1;
};
shadow-scale-y = "scale-y";
},{
triggers = ["close", "hide"];
opacity = {
curve = "linear";
duration = 0.15;
start = "window-raw-opacity-before";
end = "0";
};
blur-opacity = 0;
shadow-opacity = "opacity";
scale-y = {
curve = "cubic-bezier(0.21, 0.02, 0.76, 0.36)";
duration = 0.15;
start = 1;
end = 0.7;
};
shadow-scale-y = "scale-y";
});
}, {
match = "window_type = 'dropdown_menu' || window_type = 'popup_menu' || window_type = 'menu'";
opacity = 0.9;
}, {
match = "window_type = 'dock' || window_type = 'desktop'";
blur-background = false;
corner-radius = 0;
}, {
match = "class_g *= 'i3lock' || _NET_WM_STATE@[1] = '_NET_WM_STATE_FULLSCREEN' || _NET_WM_STATE@[2] = '_NET_WM_STATE_FULLSCREEN' || _NET_WM_STATE@[3] = '_NET_WM_STATE_FULLSCREEN' || _NET_WM_STATE@[4] = '_NET_WM_STATE_FULLSCREEN'";
shadow = false;
corner-radius = 0;
animations = ({
triggers = ["open", "show"];
opacity = {
curve = "linear";
duration = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
blur-opacity = {
curve = "linear";
duration = 0.1;
delay = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
shadow-opacity = "opacity";
},{
triggers = ["close", "hide"];
opacity = {
curve = "linear";
duration = 0.15;
start = "window-raw-opacity-before";
end = "0";
};
blur-opacity = 0;
shadow-opacity = "opacity";
});
});
animations = ({
triggers = ["close", "hide"];
opacity = {
curve = "linear";
duration = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
blur-opacity = "0";
shadow-opacity = "opacity";
offset-x = "(1 - scale-x) / 2 * window-width";
offset-y = "(1 - scale-y) / 2 * window-height * 5";
scale-x = {
curve = "cubic-bezier(0.21, 0.02, 0.76, 0.36)";
duration = 0.15;
start = 1;
end = 0.9;
};
scale-y = "scale-x";
shadow-scale-x = "scale-x";
shadow-scale-y = "scale-y";
shadow-offset-x = "offset-x";
shadow-offset-y = "offset-y";
}, {
triggers = ["open", "show"];
opacity = {
curve = "linear";
duration = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
blur-opacity = {
curve = "linear";
duration = 0.1;
delay = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
shadow-opacity = "opacity";
offset-x = "(1 - scale-x) / 2 * window-width";
offset-y = "(1 - scale-y) / 2 * window-height * 5";
scale-x = {
curve = "cubic-bezier(0.24, 0.64, 0.79, 0.98)";
duration = 0.15;
start = 0.95;
end = 1;
};
scale-y = "scale-x";
shadow-scale-x = "scale-x";
shadow-scale-y = "scale-y";
shadow-offset-x = "offset-x";
shadow-offset-y = "offset-y";
},
# Half Window Size Desktop Switch
{
triggers = ["workspace-out"];
offset-y = {
curve = "cubic-bezier(0.21, 0.02, 0.76, 0.36)";
duration = 0.15;
start = "0";
end = "- window-height / 2";
};
shadow-offset-y = "offset-y";
opacity = {
curve = "linear";
duration = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
blur-opacity = "0";
shadow-opacity = "opacity";
}, {
triggers = ["workspace-out-inverse"];
offset-y = {
curve = "cubic-bezier(0.21, 0.02, 0.76, 0.36)";
duration = 0.15;
start = "0";
end = "window-height / 2";
};
shadow-offset-y = "offset-y";
opacity = {
curve = "linear";
duration = 0.15;
start = "window-raw-opacity-before";
end = "window-raw-opacity";
};
blur-opacity = "0";
shadow-opacity = "opacity";
}, {
triggers = ["workspace-in"];
offset-y = {
curve = "cubic-bezier(0.24, 0.64, 0.79, 0.98)";
duration = 0.15;
start = "window-height / 2";
end = "0";
};
shadow-offset-y = "offset-y";
opacity = {
curve = "linear";
duration = 0.15;
start = "0";
end = "window-raw-opacity";
};
blur-opacity = {
curve = "linear";
duration = 0.1;
delay = 0.15;
start = "0";
end = "window-raw-opacity";
};
shadow-opacity = "opacity";
}, {
triggers = ["workspace-in-inverse"];
offset-y = {
curve = "cubic-bezier(0.24, 0.64, 0.79, 0.98)";
duration = 0.15;
start = "- window-height / 2";
end = "0";
};
shadow-offset-y = "offset-y";
opacity = {
curve = "linear";
duration = 0.15;
start = "0";
end = "window-raw-opacity";
};
blur-opacity = {
curve = "linear";
duration = 0.1;
delay = 0.15;
start = "0";
end = "window-raw-opacity";
};
shadow-opacity = "opacity";
}, {
triggers = [ "geometry" ];
preset = "geometry-change";
})