96 lines
2.7 KiB
Nix
96 lines
2.7 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib) mkEnableOption mkIf;
|
|
|
|
cfg = config.marleyos.services.picom;
|
|
hasXorg = config.xsession.enable;
|
|
in
|
|
{
|
|
options.marleyos.services.picom.enable = mkEnableOption "picom";
|
|
|
|
config = mkIf (cfg.enable && hasXorg) {
|
|
services.picom = {
|
|
enable = true;
|
|
package = config.lib.nixGL.wrap pkgs.picom;
|
|
};
|
|
|
|
# The module config options are a nightmare.
|
|
xdg.configFile."picom/picom.conf".text = # conf
|
|
''
|
|
# Shadows - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
shadow = true;
|
|
shadow-radius = 20;
|
|
shadow-opacity = .30;
|
|
shadow-offset-x = -7;
|
|
shadow-offset-y = 7;
|
|
shadow-exclude = [
|
|
"name = 'Notification'",
|
|
"class_g = 'Conky'",
|
|
"class_g ?= 'Notify-osd'",
|
|
"class_g = 'Cairo-clock'"
|
|
];
|
|
|
|
# Fading - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
fading = true;
|
|
fade-in-step = 0.03;
|
|
fade-out-step = 0.03;
|
|
|
|
# Transparency / Opacity - - - - - - - - - - - - - - - - - - - - - - -
|
|
inactive-opacity = 0.7;
|
|
active-opacity = 0.9;
|
|
frame-opacity = 0.7;
|
|
inactive-opacity-override = false;
|
|
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
|
opacity-rule = [
|
|
"100:class_g = 'firefox'",
|
|
"60:class_g = 'dolphin'",
|
|
"50:class_g = 'cava'"
|
|
];
|
|
|
|
# Corners - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
corner-radius = 20;
|
|
rounded-corners-exclude = [
|
|
"window_type = 'dock'",
|
|
"window_type = 'desktop'",
|
|
"class_g = 'Dunst'"
|
|
];
|
|
|
|
# Background Blurring - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
blur-method = "dual_kawase";
|
|
blur-size = 12;
|
|
blur-strength = 10;
|
|
blur-background = false;
|
|
blur-kern = "3x3box";
|
|
blur-background-exclude = [
|
|
"window_type = 'desktop'",
|
|
"name = 'firefox'",
|
|
"class_g = 'slop'"
|
|
];
|
|
|
|
# General - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
backend = "glx";
|
|
dithered-present = false;
|
|
vsync = true;
|
|
mark-wmwin-focused = true;
|
|
detect-rounded-corners = true;
|
|
detect-client-opacity = true;
|
|
detect-transient = true;
|
|
use-damage = false;
|
|
log-level = "warn";
|
|
|
|
wintypes:
|
|
{
|
|
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
|
dock = { shadow = false; clip-shadow-above = true; }
|
|
dnd = { shadow = false; }
|
|
popup_menu = { opacity = 0.8; }
|
|
dropdown_menu = { opacity = 0.8; }
|
|
};
|
|
'';
|
|
};
|
|
}
|