rofi spawns a process per menu, so every volume nudge and every step back destroyed and recreated the window. That is the flicker, and no tuning fixes it. The panel is now one GTK window: a GtkStack for views, real GtkScale sliders wired to wpctl, status on a timer, and a pidfile so super+x toggles it shut. Escape steps back inside the same window. Also: picom no longer fades or animates rofi, ::selection is not valid GTK css, and the network/bluetooth lists no longer print their payload column. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cn3dHfbgNYdbZvzb1b3GQt
70 lines
1.7 KiB
Text
70 lines
1.7 KiB
Text
#################################
|
|
# Backend
|
|
#################################
|
|
backend = "glx";
|
|
vsync = true;
|
|
|
|
#################################
|
|
# Animations (smooth but light)
|
|
#################################
|
|
animations = true;
|
|
animation-stiffness = 200;
|
|
animation-dampening = 20;
|
|
animation-clamping = true;
|
|
|
|
animation-for-open-window = "zoom";
|
|
animation-for-unmap-window = "fade";
|
|
animation-for-transient-window = "zoom";
|
|
|
|
#################################
|
|
# Fading (subtle smoothness)
|
|
#################################
|
|
fading = true;
|
|
fade-in-step = 0.04;
|
|
fade-out-step = 0.04;
|
|
fade-delta = 5;
|
|
|
|
#################################
|
|
# Transparency (ONLY terminal)
|
|
#################################
|
|
inactive-opacity = 1.0;
|
|
active-opacity = 1.0;
|
|
|
|
opacity-rule = [
|
|
"85:class_g = 'kitty'"
|
|
];
|
|
|
|
#################################
|
|
# Shadows (optional but light)
|
|
#################################
|
|
shadow = false;
|
|
|
|
#################################
|
|
# Performance / sanity
|
|
#################################
|
|
unredir-if-possible = true;
|
|
detect-client-opacity = true;
|
|
use-damage = true;
|
|
log-level = "warn";
|
|
|
|
# --- rounded corners ---
|
|
corner-radius = 12;
|
|
round-borders = 1;
|
|
rounded-corners-exclude = [
|
|
# the particles layer is a full-screen desktop window; clipping it would
|
|
# notch the corners of the field
|
|
"window_type = 'desktop'",
|
|
# polybar rounds its own background
|
|
"window_type = 'dock'",
|
|
# never round a fullscreen game
|
|
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'",
|
|
];
|
|
|
|
# The control centre redraws by relaunching rofi, so the open/close zoom and
|
|
# fade read as flicker. Exclude rofi from both.
|
|
fade-exclude = [
|
|
"class_g = 'Rofi'",
|
|
];
|
|
animation-exclude = [
|
|
"class_g = 'Rofi'",
|
|
];
|