aboutsummaryrefslogtreecommitdiff
path: root/home/rices/cassette-futurism/picom.nix
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-04-05 17:39:14 +0200
committerNatasha Moongrave <natasha@256phi.eu>2026-04-05 17:39:14 +0200
commit65b13cda8d89386961c725b6a77c29a26c5af72a (patch)
tree7ec914119e3ebdf089ec549ad9cfb3e4133fc3aa /home/rices/cassette-futurism/picom.nix
parentd9a13ba9e7b38c1f03049e7d79377661e0b9c036 (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.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;
+ };
+ };
+ };
+ };
+}