diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-04-05 18:38:54 +0200 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-04-05 18:38:54 +0200 |
| commit | 75bf2f09e0c8eb6592da5746ca618bd518171f63 (patch) | |
| tree | 880459f4d3beb824a560c41c055bf41920686e1a | |
| parent | 06e4f3469dde0bc54e4e9d15c52ab53634789195 (diff) | |
Rewrote and fixed the xfce configuration
| -rw-r--r-- | home/rices/cassette-futurism/xfce.nix | 373 |
1 files changed, 309 insertions, 64 deletions
diff --git a/home/rices/cassette-futurism/xfce.nix b/home/rices/cassette-futurism/xfce.nix index 9a1970c..8eca98a 100644 --- a/home/rices/cassette-futurism/xfce.nix +++ b/home/rices/cassette-futurism/xfce.nix @@ -1,29 +1,236 @@ { config, pkgs, - osConfig, + lib, ... }: let vars = import ./variables.nix; - # Access system-level Stylix wallpaper - wallpaperPath = osConfig.stylix.image; + c = vars.colors; in { - # XFCE configuration via xfconf - # Cassette futurism aesthetic with hidden menubars and retro settings + # XFCE configuration with manual cassette futurism theming + # Stylix is disabled for XFCE - all colors set manually + + # GTK theme - manually configured with cassette futurism colors + gtk = { + enable = true; + + theme = { + name = "Adwaita-dark"; + package = pkgs.gnome-themes-extra; + }; + + iconTheme = { + name = "Adwaita"; + package = pkgs.adwaita-icon-theme; + }; + + font = { + name = "Noto Sans"; + size = 11; + }; + + gtk2.extraConfig = '' + gtk-application-prefer-dark-theme = 1 + ''; + + gtk3.extraConfig = { + gtk-application-prefer-dark-theme = 1; + }; + # Custom CSS for cassette futurism aesthetic + gtk3.extraCss = '' + /* Cassette Futurism GTK3 Theme */ + + /* Hide menubars globally */ + .menubar { + opacity: 0; + min-height: 0; + padding: 0; + margin: 0; + } + + /* Base colors */ + * { + outline-color: ${c.cyan}; + outline-width: 1px; + } + + /* Window backgrounds */ + window { + background-color: ${c.background}; + color: ${c.foreground}; + } + + /* Selections */ + selection { + background-color: ${c.gray2}; + color: ${c.cyan}; + } + + /* Buttons */ + button { + background-color: ${c.gray2}; + color: ${c.foreground}; + border: 1px solid ${c.gray4}; + } + + button:hover { + background-color: ${c.gray3}; + border-color: ${c.cyan}; + } + + button:active { + background-color: ${c.gray4}; + color: ${c.cyan}; + } + + /* Entry fields */ + entry { + background-color: ${c.backgroundAlt}; + color: ${c.foreground}; + border: 1px solid ${c.gray3}; + caret-color: ${c.cyan}; + } + + entry:focus { + border-color: ${c.cyan}; + } + + /* Scrollbars */ + scrollbar { + background-color: ${c.background}; + } + + scrollbar slider { + background-color: ${c.gray3}; + border: 1px solid ${c.gray4}; + } + + scrollbar slider:hover { + background-color: ${c.gray4}; + border-color: ${c.cyan}; + } + + /* Tooltips */ + tooltip { + background-color: ${c.gray2}; + color: ${c.cyan}; + border: 1px solid ${c.cyan}; + } + + /* Sidebar */ + .sidebar { + background-color: ${c.backgroundAlt}; + } + ''; + + gtk4.extraCss = '' + /* Cassette Futurism GTK4 Theme */ + + /* Hide menubars */ + .menubar { + opacity: 0; + min-height: 0; + padding: 0; + margin: 0; + } + + /* Base window styling */ + window { + background-color: ${c.background}; + color: ${c.foreground}; + } + ''; + }; + + # XFCE Terminal color scheme - CRT cassette futurism + programs.xfce4-terminal = { + enable = true; + settings = { + "Configuration" = { + FontName = "JetBrainsMono Nerd Font 11"; + MiscAlwaysShowTabs = false; + MiscBell = false; + MiscBellUrgent = false; + MiscBordersDefault = true; + MiscCursorBlinks = true; + MiscCursorShape = "TERMINAL_CURSOR_SHAPE_BLOCK"; + MiscDefaultGeometry = "100x30"; + MiscInheritGeometry = false; + MiscMenubarDefault = false; + MiscMouseAutohide = false; + MiscMouseWheelZoom = true; + MiscToolbarDefault = false; + MiscConfirmClose = true; + MiscCycleTabs = true; + MiscTabCloseButtons = true; + MiscTabCloseMiddleClick = true; + MiscTabPosition = "GTK_POS_TOP"; + MiscHighlightUrls = true; + MiscMiddleClickOpensUri = false; + MiscCopyOnSelect = false; + MiscShowRelaunchDialog = true; + MiscRewrapOnResize = true; + MiscUseShiftArrowsToScroll = false; + MiscSlimTabs = false; + MiscNewTabAdjacent = false; + ScrollingLines = 999999; + + # Cassette futurism colors (Base16) + ColorForeground = c.foreground; + ColorBackground = c.background; + ColorCursor = c.cyan; + ColorSelection = c.gray2; + ColorSelectionUseDefault = false; + + # 16-color palette for terminal + ColorPalette = lib.concatStringsSep ";" [ + c.background # 0: black + c.error # 1: red (hot pink) + c.success # 2: green (CRT green) + c.warning # 3: yellow (amber) + c.purple # 4: blue (purple) + c.magenta # 5: magenta + c.cyan # 6: cyan + c.foregroundAlt # 7: white (amber) + c.gray3 # 8: bright black + c.hotPink # 9: bright red + c.foreground # 10: bright green + c.yellow # 11: bright yellow + c.purple # 12: bright blue + c.magenta # 13: bright magenta + c.cyan # 14: bright cyan + "#FFFFFF" # 15: bright white + ]; + }; + }; + }; + + # XFCE configuration via xfconf 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 - }]; + panels = [ + { + position = "p=8;x=0;y=0"; # Top panel + size = 32; + length = 100; + autohide = false; + background-style = 0; + background-rgba = [0.06 0.06 0.06 0.95]; # Near-black with slight transparency + } + ]; + + # Panel plugins appearance + plugins = { + # Make sure clock uses system font + "plugin-1" = { + digital-format = "%H:%M"; + }; + }; }; - # Window Manager (xfwm4) + # Window Manager (xfwm4) - cassette futurism theme xfwm4 = { general = { # Disable built-in compositor (picom handles effects) @@ -34,27 +241,45 @@ in { snap_to_windows = true; snap_width = 10; - # Font - title_font = "JetBrainsMono Nerd Font 11"; + # Fonts + title_font = "JetBrainsMono Nerd Font Bold 11"; + + # Window decorations theme + theme = "Default"; + + # Button layout + button_layout = "O|HMC"; - # Opacity + # Title alignment + title_alignment = "left"; + + # Opacity settings inactive_opacity = 90; - move_opacity = 90; - resize_opacity = 90; - popup_opacity = 90; + move_opacity = 85; + resize_opacity = 85; + popup_opacity = 95; + + # Focus settings + click_to_focus = true; + focus_new = true; + raise_on_click = true; + raise_on_focus = false; }; }; - # Desktop settings + # Desktop settings - wallpaper and icons xfce4-desktop = { backdrop = { screen0 = { monitor0 = { workspace0 = { - # Apply cassette futurism wallpaper - color-style = 0; + color-style = 0; # Solid color image-style = 3; # Scaled - last-image = "${wallpaperPath}"; + last-image = vars.wallpaper; + + # Backup color (CRT black) + color1 = [0.06 0.06 0.06 1.0]; # #0F0F0F + rgba1 = [0.06 0.06 0.06 1.0]; }; }; }; @@ -68,10 +293,15 @@ in { show-trash = false; show-removable = false; }; + + # Icon appearance + icon-size = 48; + use-custom-font-size = true; + font-size = 11; }; }; - # Thunar file manager + # Thunar file manager - cassette futurism styling thunar = { # Hide menubar last-menubar-visible = false; @@ -81,69 +311,84 @@ in { # Icon view as default last-view = "ThunarIconView"; + last-icon-view-zoom-level = "THUNAR_ZOOM_LEVEL_NORMAL"; # 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; + misc-directory-specific-settings = true; - # Font (Stylix handles this, but set fallback) - font-name = "JetBrainsMono Nerd Font 11"; + # Side pane + last-side-pane = "ThunarShortcutsPane"; - # Misc - misc-bell = false; - misc-cursor-blinks = true; - misc-cursor-shape = "TERMINAL_CURSOR_SHAPE_BLOCK"; + # Statusbar + last-statusbar-visible = true; }; - # GTK settings (theme is handled by Stylix) + # GTK/X settings xsettings = { - # Prefer dark theme + # Dark theme + "Net/ThemeName" = "Adwaita-dark"; + "Net/IconThemeName" = "Adwaita"; "Gtk/ApplicationPreferDarkTheme" = 1; - # Toolbar icons only (no text) + # Toolbar settings "Gtk/ToolbarStyle" = 3; # Icons only "Gtk/ToolbarIconSize" = 3; # Large icons + "Gtk/ButtonImages" = true; + "Gtk/MenuImages" = true; - # Font rendering (Stylix handles fonts, but these are good defaults) + # Font rendering "Xft/Antialias" = 1; "Xft/Hinting" = 1; "Xft/HintStyle" = "hintslight"; "Xft/RGBA" = "rgb"; "Xft/DPI" = 96; + + # Cursor + "Gtk/CursorThemeName" = "Bibata-Modern-Classic"; + "Gtk/CursorThemeSize" = 24; + }; + + # Keyboard settings + keyboards = { + "Default" = { + Numlock = true; + }; + }; + + # Mouse/touchpad settings + pointers = { + "Default" = { + Acceleration = 2.0; + Threshold = 4; + }; }; }; - # GTK theming - let Stylix handle colors, we just hide menubars - gtk = { - enable = true; + # Home configuration + home.packages = with pkgs; [ + # XFCE goodies + xfce.xfce4-panel + xfce.xfce4-settings + xfce.xfce4-power-manager + xfce.xfce4-notifyd + xfce.thunar + xfce.thunar-volman + xfce.tumbler + xfce.mousepad + xfce.ristretto + xfce.xfce4-screenshooter - gtk3.extraCss = '' - /* Hide menubars globally in GTK3 applications */ - .menubar { - opacity: 0; - min-height: 0; - padding: 0; - margin: 0; - } - ''; + # Themes + gnome-themes-extra + adwaita-icon-theme + bibata-cursors + ]; - gtk4.extraCss = '' - /* Hide menubars in GTK4 applications */ - .menubar { - opacity: 0; - min-height: 0; - padding: 0; - margin: 0; - } - ''; + # Session variables + home.sessionVariables = { + # Force GTK to use our theme + GTK_THEME = "Adwaita-dark"; }; } |
