Issues with Firefox & Picom/Compton?

I was having an issue with picom and firefox where any menus when opened had a opaque border around them. I could seem to find a solution until I was playing around with an Awesome WM config I found and I used their picom.config. They suggest the tryone144 picom fork for their blur etc and it just happened it fixed my FF issue.

So, install the tryone picom fork and use this config

~/.confg/picom.config


#            ▀                                                       ▄▀▀ 
#   ▄▄▄▄   ▄▄▄     ▄▄▄    ▄▄▄   ▄▄▄▄▄          ▄▄▄    ▄▄▄   ▄ ▄▄   ▄▄█▄▄ 
#   █▀ ▀█    █    █▀  ▀  █▀ ▀█  █ █ █         █▀  ▀  █▀ ▀█  █▀  █    █   
#   █   █    █    █      █   █  █ █ █         █      █   █  █   █    █   
#   ██▄█▀  ▄▄█▄▄  ▀█▄▄▀  ▀█▄█▀  █ █ █    █    ▀█▄▄▀  ▀█▄█▀  █   █    █   
#   █                                                                    
#   ▀     




# Shadow

shadow = true;
shadow-radius = 12;
shadow-offset-x = -12;
shadow-offset-y = -12;
shadow-opacity = 0.7;

# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;

# shadow-exclude-reg = "x10+0+0";
# xinerama-shadow-crop = true;

shadow-exclude = [
	"name = 'Notification'",
	"class_g = 'Conky'",
	"class_g ?= 'Notify-osd'",
	"class_g = 'Cairo-clock'",
	"class_g = 'slop'",
	"class_g = 'Firefox' && argb",
	"class_g = 'Rofi'",
	"_GTK_FRAME_EXTENTS@:c",
	"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];

# Logs
log-level = "ERROR";
log-file = "~/.cache/picom-log.log";


# Opacity

# inactive-opacity = 0.8;
# active-opacity = 0.8;
# frame-opacity = 0.7;
inactive-opacity-override = false;

opacity-rule = [ 
	"80:class_g = 'URxvt'",
	"80:class_g = 'UXTerm'",
	"80:class_g = 'XTerm'",
	"99:window_type = 'normal'",		# Add a tiny bit of opacity to all normal windows to apply blur
	"99:window_type = 'dialog'",		# Add a tiny bit of opacity to all dialog windows to apply blur
	"99:window_type = 'popup_menu'",	# Add a tiny bit of opacity to all popup_menu windows to apply blur
	"99:window_type = 'notification'"	# Add a tiny bit of opacity to all popup_menu windows to apply blur
];

# inactive-dim = 0.2;
# inactive-dim-fixed = true;


# Blur

blur: {
	method = "dual_kawase";
    strength = 6.9;
	# deviation = 1.0;
	# kernel = "11x11gaussian";
}

# blur-background = true;
# blur-background-frame = true;
# blur-kern = "3x3box";
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
# blur-background-fixed = true;

blur-background-exclude = [
	"window_type = 'desktop'",
	"window_type = 'utility'",
	"window_type = 'notification'",
	"class_g = 'slop'",
	"class_g = 'Firefox' && argb",
	"name = 'rofi - Search'",
	"_GTK_FRAME_EXTENTS@:c"
];

# max-brightness = 0.66

# Fading

fading = true;
fade-delta = 3;
fade-in-step = 0.03;
fade-out-step = 0.03;
# no-fading-openclose = true;
# no-fading-destroyed-argb = true;
fade-exclude = [ ];

# Other

backend = "glx";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
# use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = true;
# sw-opti = true;
unredir-if-possible = false;
# unredir-if-possible-delay = 5000;
# unredir-if-possible-exclude = [ ];
# focus-exclude = [ "class_g = 'Cairo-clock'" ];

focus-exclude = [
	"class_g = 'Cairo-clock'",
	"class_g ?= 'rofi'",
	"class_g ?= 'slop'",
	"class_g ?= 'Steam'"
];


detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
# resize-damage = 1;

# GLX backend

glx-no-stencil = true;
# glx-no-rebind-pixmap = true;
# xrender-sync-fence = true;
use-damage = true;

# Window type settings

wintypes:
{
	tooltip = { fade = true; shadow = false; focus = false;	};
	normal = { shadow = false; };
	dock = { shadow = false; };
	dnd = { shadow = false; };
	popup_menu = { shadow = true; focus = false; opacity = 0.90; };
	dropdown_menu = { shadow = false; focus = false; };
	above = { shadow = true; };
	splash = { shadow = false; };
	utility = { focus = false; shadow = false; };
	notification = { shadow = false; };
	desktop = { shadow = false };
	menu = { focus = false };
	dialog = { shadow = true; };
};

1 Like