From 65b13cda8d89386961c725b6a77c29a26c5af72a Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Sun, 5 Apr 2026 17:39:14 +0200 Subject: Refactor cassette-futurism rice from KDE Plasma to XFCE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- home/rices/cassette-futurism/default.nix | 3 +- home/rices/cassette-futurism/picom.nix | 137 +++++++++++++++++++++++++++++++ home/rices/cassette-futurism/plasma.nix | 77 ----------------- home/rices/cassette-futurism/system.nix | 30 +++++-- home/rices/cassette-futurism/xfce.nix | 137 +++++++++++++++++++++++++++++++ 5 files changed, 298 insertions(+), 86 deletions(-) create mode 100644 home/rices/cassette-futurism/picom.nix delete mode 100644 home/rices/cassette-futurism/plasma.nix create mode 100644 home/rices/cassette-futurism/xfce.nix (limited to 'home/rices') diff --git a/home/rices/cassette-futurism/default.nix b/home/rices/cassette-futurism/default.nix index 16c5e79..dd83226 100644 --- a/home/rices/cassette-futurism/default.nix +++ b/home/rices/cassette-futurism/default.nix @@ -1,6 +1,7 @@ {pkgs, ...}: { imports = [ - ./plasma.nix + ./xfce.nix + ./picom.nix ./nvim.nix ]; 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; + }; + }; + }; + }; +} diff --git a/home/rices/cassette-futurism/plasma.nix b/home/rices/cassette-futurism/plasma.nix deleted file mode 100644 index 543960b..0000000 --- a/home/rices/cassette-futurism/plasma.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ - config, - pkgs, - ... -}: let - vars = import ./variables.nix; -in { - # KDE Plasma configuration via xdg config files - # Minimal configuration to set dark theme and hide menubars globally - # Colors are handled by Stylix - - xdg.configFile = { - # Basic KDE settings - dark theme and global menubar hiding - "kdeglobals".text = '' - [General] - ColorScheme=BreezeClassic - Name=Breeze Dark - - [KDE] - LookAndFeelPackage=org.kde.breezedark.desktop - widgetStyle=Breeze - - [Icons] - Theme=breeze-dark - - [Toolbar style] - ToolButtonStyle=NoText - ToolButtonStyleOtherToolbars=NoText - ''; - - # KWin configuration - minimal compositing settings - "kwinrc".text = '' - [Compositing] - Backend=OpenGL - - [Plugins] - blurEnabled=true - ''; - - # Hide menubars globally in all KDE applications - "konsolerc".text = '' - [MainWindow] - MenuBar=Disabled - ''; - - "dolphinrc".text = '' - [MainWindow] - MenuBar=Disabled - ToolBarsMovable=Disabled - ''; - - "katerc".text = '' - [MainWindow] - MenuBar=Disabled - ''; - - "gwenviewrc".text = '' - [MainWindow] - MenuBar=Disabled - ''; - - "spectaclerc".text = '' - [MainWindow] - MenuBar=Disabled - ''; - - "arkrc".text = '' - [MainWindow] - MenuBar=Disabled - ''; - - "okularrc".text = '' - [MainWindow] - MenuBar=Disabled - ''; - }; -} diff --git a/home/rices/cassette-futurism/system.nix b/home/rices/cassette-futurism/system.nix index f368e16..03439b5 100644 --- a/home/rices/cassette-futurism/system.nix +++ b/home/rices/cassette-futurism/system.nix @@ -1,8 +1,10 @@ {pkgs, ...}: let vars = import ./variables.nix; in { - # Desktop environment - KDE Plasma 6 - services.desktopManager.plasma6.enable = true; + # Desktop environment - XFCE + services.xserver.desktopManager.xfce.enable = true; + + # Note: Using ly display manager from system/services.nix (not LightDM) services.xserver = { enable = true; @@ -12,13 +14,25 @@ in { }; }; - # KDE-specific packages + # XFCE-specific packages environment.systemPackages = with pkgs; [ - kdePackages.kate - kdePackages.konsole - kdePackages.dolphin - kdePackages.spectacle - kdePackages.gwenview + # Core XFCE components + xfce.xfce4-panel + xfce.xfce4-settings + xfce.xfce4-power-manager + xfce.xfce4-notifyd + xfce.thunar + xfce.thunar-volman + xfce.tumbler + + # XFCE applications (KDE replacements) + xfce.xfce4-terminal # replaces konsole + xfce.mousepad # replaces kate + xfce.ristretto # replaces gwenview + xfce.xfce4-screenshooter # replaces spectacle + + # Compositor for effects + picom ]; # Stylix configuration - cassette futurism diff --git a/home/rices/cassette-futurism/xfce.nix b/home/rices/cassette-futurism/xfce.nix new file mode 100644 index 0000000..3f920d8 --- /dev/null +++ b/home/rices/cassette-futurism/xfce.nix @@ -0,0 +1,137 @@ +{ + config, + pkgs, + ... +}: let + vars = import ./variables.nix; +in { + # XFCE configuration via xfconf + # Cassette futurism aesthetic with hidden menubars and retro settings + + xfconf.settings = { + # Panel configuration + xfce4-panel = { + panels = [{ + position = "p=8;x=0;y=0"; # Top panel + size = 32; + length = 100; + autohide = false; + background-style = 0; # System style + }]; + }; + + # Window Manager (xfwm4) + xfwm4 = { + general = { + # Disable built-in compositor (picom handles effects) + use_compositing = false; + + # Window snapping + snap_to_border = true; + snap_to_windows = true; + snap_width = 10; + + # Font + title_font = "JetBrainsMono Nerd Font 11"; + + # Opacity + inactive_opacity = 90; + move_opacity = 90; + resize_opacity = 90; + popup_opacity = 90; + }; + }; + + # Desktop settings + xfce4-desktop = { + backdrop = { + screen0 = { + monitor0 = { + workspace0 = { + # Wallpaper is handled by Stylix + image-style = 3; # Scaled + }; + }; + }; + }; + + desktop-icons = { + # Hide all desktop icons + file-icons = { + show-filesystem = false; + show-home = false; + show-trash = false; + show-removable = false; + }; + }; + }; + + # Thunar file manager + thunar = { + # Hide menubar + last-menubar-visible = false; + + # Show hidden files by default + last-show-hidden = true; + + # Icon view as default + last-view = "ThunarIconView"; + + # Misc settings + misc-single-click = false; + misc-folders-first = true; + }; + + # xfce4-terminal + xfce4-terminal = { + # Hide menubar + misc-menubar-default = false; + + # Unlimited scrolling + scrolling-unlimited = true; + + # Font (Stylix handles this, but set fallback) + font-name = "JetBrainsMono Nerd Font 11"; + + # Misc + misc-bell = false; + misc-cursor-blinks = true; + misc-cursor-shape = "TERMINAL_CURSOR_SHAPE_BLOCK"; + }; + + # GTK settings + xsettings = { + # Dark theme preference + "Net/ThemeName" = "Adwaita-dark"; + "Gtk/ApplicationPreferDarkTheme" = 1; + + # Toolbar icons only (no text) + "Gtk/ToolbarStyle" = 3; # Icons only + "Gtk/ToolbarIconSize" = 3; # Large icons + + # Font rendering + "Xft/Antialias" = 1; + "Xft/Hinting" = 1; + "Xft/HintStyle" = "hintslight"; + "Xft/RGBA" = "rgb"; + "Xft/DPI" = 96; + }; + }; + + # Additional GTK settings for menubar hiding + gtk.gtk3.extraCss = '' + /* Hide menubars globally in GTK3 applications */ + .menubar { + opacity: 0; + min-height: 0; + padding: 0; + margin: 0; + } + ''; + + # Session variables + home.sessionVariables = { + # Ensure GTK uses dark theme + GTK_THEME = "Adwaita-dark"; + }; +} -- cgit v1.2.3