aboutsummaryrefslogtreecommitdiff
path: root/home/rices/cassette-futurism/picom.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home/rices/cassette-futurism/picom.nix')
-rw-r--r--home/rices/cassette-futurism/picom.nix137
1 files changed, 137 insertions, 0 deletions
diff --git a/home/rices/cassette-futurism/picom.nix b/home/rices/cassette-futurism/picom.nix
new file mode 100644
index 0000000..26518e0
--- /dev/null
+++ b/home/rices/cassette-futurism/picom.nix
@@ -0,0 +1,137 @@
+{
+ config,
+ pkgs,
+ ...
+}: let
+ vars = import ./variables.nix;
+in {
+ # Picom compositor configuration
+ # CRT-inspired effects: green glow shadows, transparency, blur, rounded corners
+
+ services.picom = {
+ enable = true;
+
+ backend = "glx";
+ vSync = true;
+
+ # Opacity settings
+ opacity = 0.95;
+ activeOpacity = 0.95;
+ inactiveOpacity = 0.90;
+
+ opacityRules = [
+ "90:class_g = 'Xfce4-terminal'"
+ "90:class_g = 'xfce4-terminal'"
+ "95:class_g = 'Thunar'"
+ "95:class_g = 'Mousepad'"
+ "90:class_g = 'Rofi'"
+ "100:class_g = 'Firefox'"
+ "100:class_g = 'Chromium'"
+ ];
+
+ # Fading
+ fade = true;
+ fadeDelta = 5;
+ fadeSteps = [ 0.028 0.03 ];
+
+ # Shadows - CRT green glow effect
+ shadow = true;
+ shadowOpacity = 0.6;
+ shadowOffsets = [ (-15) (-15) ];
+ shadowRadius = 20;
+
+ # CRT green glow color (hex format: #RRGGBB)
+ shadowColor = "#00FF00";
+
+ shadowExclude = [
+ "name = 'Notification'"
+ "class_g = 'Conky'"
+ "class_g ?= 'Notify-osd'"
+ "class_g = 'Cairo-clock'"
+ "_GTK_FRAME_EXTENTS@:c"
+ ];
+
+ # Blur settings
+ blur = {
+ enable = true;
+ method = "dual_kawase";
+ strength = 6;
+ };
+
+ blurExclude = [
+ "window_type = 'dock'"
+ "window_type = 'desktop'"
+ "_GTK_FRAME_EXTENTS@:c"
+ ];
+
+ # Rounded corners - 12px radius
+ cornerRadius = 12;
+
+ roundedCornersExclude = [
+ "window_type = 'dock'"
+ "window_type = 'desktop'"
+ ];
+
+ # Window animations (picom-pijulius style)
+ # Note: Standard picom may not support all animation options
+ # If animations cause issues, these can be removed
+ settings = {
+ # Animation settings (if using picom-pijulius)
+ animations = true;
+ animation-stiffness = 200;
+ animation-window-mass = 0.5;
+ animation-dampening = 20;
+ animation-clamping = false;
+
+ # Animation for window open - slide down (CRT scan-line effect)
+ animation-for-open-window = "slide-down";
+
+ # Animation for window close - slide up
+ animation-for-unmap-window = "slide-up";
+
+ # Animation for transient windows - zoom
+ animation-for-transient-window = "zoom";
+
+ # Focus/unfocus animations
+ animation-for-prev-tag = "minimize";
+ animation-for-next-tag = "slide-down";
+
+ # Additional GLX backend settings
+ glx-no-stencil = true;
+ glx-no-rebind-pixmap = true;
+ use-damage = true;
+
+ # Detect settings
+ detect-rounded-corners = true;
+ detect-client-opacity = true;
+ detect-transient = true;
+ detect-client-leader = true;
+
+ # Window type settings
+ wintypes = {
+ tooltip = {
+ fade = true;
+ shadow = false;
+ opacity = 0.90;
+ focus = true;
+ full-shadow = false;
+ };
+ dock = {
+ shadow = false;
+ clip-shadow-above = true;
+ };
+ dnd = {
+ shadow = false;
+ };
+ popup_menu = {
+ opacity = 0.90;
+ shadow = true;
+ };
+ dropdown_menu = {
+ opacity = 0.90;
+ shadow = true;
+ };
+ };
+ };
+ };
+}