aboutsummaryrefslogtreecommitdiff
path: root/home
diff options
context:
space:
mode:
Diffstat (limited to 'home')
-rw-r--r--home/rices/cassette-futurism/xfce.nix373
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";
};
}