aboutsummaryrefslogtreecommitdiff
path: root/home/rices
diff options
context:
space:
mode:
Diffstat (limited to 'home/rices')
-rw-r--r--home/rices/cassette-futurism/default.nix3
-rw-r--r--home/rices/cassette-futurism/picom.nix137
-rw-r--r--home/rices/cassette-futurism/plasma.nix77
-rw-r--r--home/rices/cassette-futurism/system.nix30
-rw-r--r--home/rices/cassette-futurism/xfce.nix137
5 files changed, 298 insertions, 86 deletions
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";
+ };
+}