diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-04-05 17:39:14 +0200 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-04-05 17:39:14 +0200 |
| commit | 65b13cda8d89386961c725b6a77c29a26c5af72a (patch) | |
| tree | 7ec914119e3ebdf089ec549ad9cfb3e4133fc3aa /home/rices/cassette-futurism/picom.nix | |
| parent | d9a13ba9e7b38c1f03049e7d79377661e0b9c036 (diff) | |
Refactor cassette-futurism rice from KDE Plasma to XFCE
- Replace KDE Plasma 6 with XFCE desktop environment
- Remove plasma.nix (KDE config), add xfce.nix (XFCE config via xfconf)
- Add picom.nix compositor with CRT green glow effects (#00FF00 shadows)
- Configure XFCE with hidden menubars, dark theme, and retro aesthetics
- Replace KDE packages with XFCE equivalents (konsole→xfce4-terminal, kate→mousepad, gwenview→ristretto, spectacle→xfce4-screenshooter)
- Keep ly display manager, preserve all Stylix theming (cassette colors, NGE wallpaper, fonts)
- Lower memory usage and faster startup compared to KDE Plasma
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'home/rices/cassette-futurism/picom.nix')
| -rw-r--r-- | home/rices/cassette-futurism/picom.nix | 137 |
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; + }; + }; + }; + }; +} |
