97 lines
2.7 KiB
Nix
97 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; }
|
||
|
};
|
||
|
'';
|
||
|
};
|
||
|
}
|