dotfiles/.config/bspwm/picom.conf
Sarthak b4c6c7dbd5 replace the rofi control centre with a real GTK panel
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
2026-09-04 01:12:49 +05:30

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'",
];