{ config, lib, pkgs, ... }:

let 
  cfg = config.jade.desktop.compositing;
in with lib; {
  options.jade.desktop.compositing = {
    enable = mkEnableOption "Enable compositing with picom";
  };
  config = mkIf cfg.enable {
    services.picom = {
        enable = true;
        backend = "glx";

        shadow = true;
        shadowOffsets = [ (-40) (-30) ];
        shadowOpacity = 0.2;
        shadowExclude = [
          "class_g ?= 'Notify-osd'"
          "_GTK_FRAME_EXTENTS@:c"
          "!(class_g = 'Rofi' || class_g = 'Dunst')"
        ];

        vSync = true;
        settings = {
          "shadow-radius" = 40;
          # fading rofi
          "fading" = true;
          "fade-in-step" = 0.25;
          "fade-out-step" = 0.2;
          "fade-delta" = 20;
          "fade-exclude" = [ "class_g != 'Rofi'" ];
          # use damage information
          "use-damage" = true; 
        };
      };
      # }}}
  };
}
