diff --git a/users/guanranwang/home-manager/applications/picom/default.nix b/users/guanranwang/home-manager/applications/picom/default.nix index f87f1eb..eff158a 100644 --- a/users/guanranwang/home-manager/applications/picom/default.nix +++ b/users/guanranwang/home-manager/applications/picom/default.nix @@ -1,75 +1,52 @@ -_: { +{pkgs, ...}: { services.picom = { enable = true; + package = pkgs.picom.overrideAttrs (old: { + src = pkgs.fetchFromGitHub { + owner = "FT-Labs"; + repo = "picom"; + rev = "ad8feaad127746beaf2afe2b2ea37e7af204a2ac"; + sha256 = "sha256-3lZ41DkNi7FVyEwvMaWwOjLD2aZ6DxZhhvVQMnU6JrI="; + }; + buildInputs = old.buildInputs ++ [pkgs.pcre2]; + }); settings = { - # Corner - corner-radius = 0; - round-borders = 0; + # Animations + animations = true; + animation-for-open-window = "zoom"; + animation-for-unmap-window = "squeeze"; + animation-for-transient-window = "slide-down"; + + # Blur + blur-method = "dual_kawase"; + blur-strength = 10; + + # Corners + corner-radius = 12; + rounded-corners-exclude = [ + "class_g = 'Polybar'" + ]; + + # Opacity + opacity-rule = [ + "100:_NET_WM_STATE@:32a = '_NET_WM_STATE_FULLSCREEN'" + "90:class_g = 'Polybar'" + "90:class_g = 'Rofi'" + "90:class_g = 'Alacritty'" + ]; # Shadow shadow = true; - shadow-radius = 15; - shadow-offset-x = -8; - shadow-offset-y = -8; - shadow-opacity = 0.2; shadow-exclude = [ "_GTK_FRAME_EXTENTS@:c" ]; - # Fade - fading = true; - fade-in-step = 0.04; - fade-out-step = 0.04; - fade-delta = 3; - - # Dim inactive window - inactive-dim = 0; - focus-exclude = [ - "class_g = 'Rofi'" - ]; - - # Opacity - frame-opacity = 1; - active-opacity = 1; - inactive-opacity = 1; - dropdown_menu = {opacity = 1;}; - popup_menu = {opacity = 1;}; - - opacity-rule = [ - "100:_NET_WM_STATE@:32a = '_NET_WM_STATE_FULLSCREEN'" - "90:class_g = 'Polybar'" - "90:class_g = 'Rofi'" - "90:class_g = 'Alacritty'" - ]; - - # Blur - blur = { - method = "dual_kawase"; - strength = 9; - }; - blur-background-exclude = [ - "_GTK_FRAME_EXTENTS@:c" - "class_g = 'Main'" - ]; - + # Misc backend = "glx"; + glx-no-rebind-pixmap = true; + glx-no-stencil = true; vsync = true; - use-damage = false; unredir-if-possible = true; - - wintypes = { - dropdown_menu = {opacity = 1;}; - tooltip = { - fade = true; - shadow = true; - opacity = 0.1; - focus = true; - }; - popup_menu = {opacity = 1;}; - - notification = {redir-ignore = true;}; - notify = {redir-ignore = true;}; - }; }; }; }