diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-04-05 22:27:45 +0200 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-04-05 22:27:45 +0200 |
| commit | b92708b616ffefae3fec27b21072f28d177bd120 (patch) | |
| tree | e65414ef45ea91bfa507ab660cd7611bf64d7cd8 /home | |
| parent | 0a4134a7b7c33493aaacdb657b4ebefbfe6f0a25 (diff) | |
Add minimal KDE Plasma 6 configuration for cassette-futurism rice
Created complete cassette-futurism rice with KDE Plasma 6 desktop environment. Includes system.nix (Plasma 6 setup, Stylix theming), plasma.nix (minimal config with manual theming documentation), default.nix (module orchestrator), and nvim.nix/variables.nix (editor config and color palette).
Fixed critical bug in home/mun/default.nix where rice import was hardcoded to nord-blue instead of using the rice parameter, causing all hosts to use nord-blue home configuration regardless of their assigned rice.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'home')
| -rw-r--r-- | home/mun/default.nix | 2 | ||||
| -rw-r--r-- | home/rices/cassette-futurism/default.nix | 13 | ||||
| -rw-r--r-- | home/rices/cassette-futurism/nvim.nix | 58 | ||||
| -rw-r--r-- | home/rices/cassette-futurism/plasma.nix | 51 | ||||
| -rw-r--r-- | home/rices/cassette-futurism/system.nix | 101 | ||||
| -rw-r--r-- | home/rices/cassette-futurism/variables.nix | 59 |
6 files changed, 283 insertions, 1 deletions
diff --git a/home/mun/default.nix b/home/mun/default.nix index 8af6d1b..15e00ef 100644 --- a/home/mun/default.nix +++ b/home/mun/default.nix @@ -7,7 +7,7 @@ ./programs/zsh.nix ./programs/ssh.nix ./programs/git.nix - ../rices/nord-blue + ../rices/${rice} ]; nixowos = { diff --git a/home/rices/cassette-futurism/default.nix b/home/rices/cassette-futurism/default.nix new file mode 100644 index 0000000..03a8469 --- /dev/null +++ b/home/rices/cassette-futurism/default.nix @@ -0,0 +1,13 @@ +{pkgs, ...}: { + imports = [ + ./plasma.nix # KDE Plasma 6 configuration + ./nvim.nix # Neovim with cassette-futurism colors + ]; + + # Cassette futurism specific packages + home.packages = with pkgs; [ + # Optional: cool-retro-term for authentic CRT terminal experience + # Uncomment if desired: + # cool-retro-term + ]; +} diff --git a/home/rices/cassette-futurism/nvim.nix b/home/rices/cassette-futurism/nvim.nix new file mode 100644 index 0000000..8e20790 --- /dev/null +++ b/home/rices/cassette-futurism/nvim.nix @@ -0,0 +1,58 @@ +{pkgs, ...}: let + vars = import ./variables.nix; +in { + programs.neovim = { + enable = true; + defaultEditor = true; + viAlias = true; + vimAlias = true; + + extraLuaConfig = '' + -- Cassette Futurism Neovim theme + vim.cmd([[ + highlight Normal guibg=${vars.colors.background} guifg=${vars.colors.foreground} + highlight NormalFloat guibg=${vars.colors.backgroundAlt} guifg=${vars.colors.foreground} + highlight Comment guifg=${vars.colors.gray4} gui=italic + highlight Constant guifg=${vars.colors.orange} + highlight String guifg=${vars.colors.success} + highlight Character guifg=${vars.colors.success} + highlight Number guifg=${vars.colors.orange} + highlight Boolean guifg=${vars.colors.hotPink} + highlight Float guifg=${vars.colors.orange} + highlight Identifier guifg=${vars.colors.cyan} + highlight Function guifg=${vars.colors.purple} + highlight Statement guifg=${vars.colors.magenta} + highlight Keyword guifg=${vars.colors.magenta} + highlight Operator guifg=${vars.colors.cyan} + highlight PreProc guifg=${vars.colors.hotPink} + highlight Type guifg=${vars.colors.yellow} + highlight Special guifg=${vars.colors.cyan} + highlight Underlined guifg=${vars.colors.purple} gui=underline + highlight Error guibg=${vars.colors.error} guifg=${vars.colors.background} + highlight Todo guibg=${vars.colors.yellow} guifg=${vars.colors.background} + highlight LineNr guifg=${vars.colors.gray4} + highlight CursorLineNr guifg=${vars.colors.hotPink} + highlight Visual guibg=${vars.colors.gray2} + highlight Search guibg=${vars.colors.purple} guifg=${vars.colors.background} + highlight IncSearch guibg=${vars.colors.hotPink} guifg=${vars.colors.background} + highlight StatusLine guibg=${vars.colors.backgroundAlt} guifg=${vars.colors.cyan} + highlight StatusLineNC guibg=${vars.colors.backgroundAlt} guifg=${vars.colors.gray4} + highlight VertSplit guibg=${vars.colors.background} guifg=${vars.colors.gray3} + highlight Pmenu guibg=${vars.colors.backgroundAlt} guifg=${vars.colors.foreground} + highlight PmenuSel guibg=${vars.colors.hotPink} guifg=${vars.colors.background} + highlight PmenuSbar guibg=${vars.colors.gray2} + highlight PmenuThumb guibg=${vars.colors.gray4} + ]]) + + -- Basic settings + vim.opt.number = true + vim.opt.relativenumber = true + vim.opt.expandtab = true + vim.opt.shiftwidth = 2 + vim.opt.tabstop = 2 + vim.opt.smartindent = true + vim.opt.termguicolors = true + vim.opt.cursorline = true + ''; + }; +} diff --git a/home/rices/cassette-futurism/plasma.nix b/home/rices/cassette-futurism/plasma.nix new file mode 100644 index 0000000..04c5983 --- /dev/null +++ b/home/rices/cassette-futurism/plasma.nix @@ -0,0 +1,51 @@ +{ + config, + pkgs, + ... +}: let + vars = import ./variables.nix; +in { + # KDE Plasma 6 configuration for cassette-futurism rice + # + # MINIMAL BOOTSTRAP - User will configure theme manually + # + # To configure cassette-futurism theme: + # 1. Boot into KDE Plasma + # 2. Open System Settings → Appearance → Colors + # 3. Apply cassette-futurism colors from variables.nix: + # - Background: #0F0F0F (near-black CRT) + # - Foreground: #00FF00 (CRT green phosphor) + # - Accent: #FF006E (hot pink) + # - Selection: #2A2A2A with #00FFFF cyan text + # 4. Set wallpaper: ${vars.wallpaper} (NGE_CF.jpg) + # 5. Configure Konsole with 16-color cassette palette + # 6. Export settings when satisfied + # 7. Update this file with xdg.configFile entries + # + # Reference colors available in variables.nix: + # - Background: ${vars.colors.background} + # - Foreground: ${vars.colors.foreground} + # - Hot Pink: ${vars.colors.hotPink} + # - Cyan: ${vars.colors.cyan} + # - Purple: ${vars.colors.purple} + # - Orange: ${vars.colors.orange} + + # Optional packages for cassette-futurism aesthetic + home.packages = with pkgs; [ + # Uncomment for authentic CRT terminal: + # cool-retro-term + ]; + + # Placeholder for future KDE configuration via xdg.configFile + # After manual theme setup, add entries like: + # + # xdg.configFile."kdeglobals".text = '' + # [ColorScheme] + # # Your cassette-futurism colors + # ''; + # + # xdg.configFile."kwinrc".text = '' + # [Effect-Blur] + # BlurStrength=8 + # ''; +} diff --git a/home/rices/cassette-futurism/system.nix b/home/rices/cassette-futurism/system.nix new file mode 100644 index 0000000..eab4647 --- /dev/null +++ b/home/rices/cassette-futurism/system.nix @@ -0,0 +1,101 @@ +{pkgs, ...}: let + vars = import ./variables.nix; +in { + # Desktop environment - KDE Plasma 6 + services.xserver = { + enable = true; + xkb = { + layout = "cz"; + options = "eurosign:e,caps:escape"; + }; + }; + + services.desktopManager.plasma6.enable = true; + + # Minimal Plasma installation - exclude non-essential apps + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + elisa # Music player + kate # Text editor (we have nvim) + gwenview # Image viewer + okular # Document viewer + discover # App store + plasma-browser-integration + print-manager + khelpcenter + ]; + + # Stylix configuration for cassette-futurism rice + stylix = { + enable = true; + autoEnable = false; # Manual theming - user will configure KDE manually + + # Use cassette-futurism base16 color scheme + base16Scheme = { + base00 = vars.base16.base00; # 0F0F0F - background + base01 = vars.base16.base01; # 1A1A1A - lighter background + base02 = vars.base16.base02; # 2A2A2A - selection background + base03 = vars.base16.base03; # 3A3A3A - comments + base04 = vars.base16.base04; # 00FF00 - CRT green + base05 = vars.base16.base05; # 00FFFF - cyan foreground + base06 = vars.base16.base06; # FF006E - hot pink + base07 = vars.base16.base07; # FFFFFF - bright white + base08 = vars.base16.base08; # FF006E - hot pink (variables) + base09 = vars.base16.base09; # FF8500 - orange (constants) + base0A = vars.base16.base0A; # FFD60A - yellow (classes) + base0B = vars.base16.base0B; # 00FF00 - green (strings) + base0C = vars.base16.base0C; # 00FFFF - cyan (support) + base0D = vars.base16.base0D; # 9D4EDD - purple (functions) + base0E = vars.base16.base0E; # FF00FF - magenta (keywords) + base0F = vars.base16.base0F; # FFAA00 - amber (deprecated) + }; + + # Use local NGE cassette-futurism wallpaper + image = ../../../assets/wallpapers/NGE_CF.jpg; + + fonts = { + monospace = { + package = pkgs.nerd-fonts.jetbrains-mono; + name = "JetBrainsMono Nerd Font"; + }; + sansSerif = { + package = pkgs.noto-fonts; + name = "Noto Sans"; + }; + serif = { + package = pkgs.noto-fonts; + name = "Noto Serif"; + }; + emoji = { + package = pkgs.noto-fonts-color-emoji; + name = "Noto Color Emoji"; + }; + sizes = { + terminal = 10; + applications = 11; + desktop = 11; + }; + }; + + cursor = { + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Classic"; + size = 24; + }; + + opacity = { + terminal = 0.95; + applications = 1.0; + desktop = 1.0; + popups = 0.95; + }; + + polarity = "dark"; + + # Explicitly enable only console theming + targets = { + console.enable = true; + nixos-icons.enable = false; + # Note: KDE/Plasma targets don't exist in Stylix - manual theming only + }; + }; +} diff --git a/home/rices/cassette-futurism/variables.nix b/home/rices/cassette-futurism/variables.nix new file mode 100644 index 0000000..e8c2ddf --- /dev/null +++ b/home/rices/cassette-futurism/variables.nix @@ -0,0 +1,59 @@ +{ + # Cassette Futurism Color Palette + # Inspired by 1970s-80s tech aesthetic: CRT displays, cassette tapes, VCRs + # Dark background with hot retro accent colors + + colors = { + # Base colors - CRT display aesthetic + background = "#0F0F0F"; # Near-black CRT screen + backgroundAlt = "#1A1A1A"; # Slightly lighter for contrast + foreground = "#00FF00"; # Classic CRT green phosphor + foregroundAlt = "#FFAA00"; # CRT amber phosphor (alternative) + + # Accent colors - Hot retro palette + hotPink = "#FF006E"; # Cassette label pink + cyan = "#00FFFF"; # Bright cyan (retro terminal) + purple = "#9D4EDD"; # Deep retro purple + magenta = "#FF00FF"; # Hot magenta + orange = "#FF8500"; # Cassette tape orange + yellow = "#FFD60A"; # Warning yellow + + # Functional colors + success = "#00FF00"; # CRT green + warning = "#FFAA00"; # Amber + error = "#FF006E"; # Hot pink + info = "#00FFFF"; # Cyan + + # UI grays + gray0 = "#0F0F0F"; + gray1 = "#1A1A1A"; + gray2 = "#2A2A2A"; + gray3 = "#3A3A3A"; + gray4 = "#4A4A4A"; + gray5 = "#5A5A5A"; + }; + + # Base16 mapping for Stylix + base16 = { + base00 = "0F0F0F"; # background + base01 = "1A1A1A"; # lighter background + base02 = "2A2A2A"; # selection background + base03 = "3A3A3A"; # comments + base04 = "00FF00"; # CRT green + base05 = "00FFFF"; # cyan foreground + base06 = "FF006E"; # hot pink + base07 = "FFFFFF"; # bright white + base08 = "FF006E"; # hot pink (variables) + base09 = "FF8500"; # orange (constants) + base0A = "FFD60A"; # yellow (classes) + base0B = "00FF00"; # green (strings) + base0C = "00FFFF"; # cyan (support) + base0D = "9D4EDD"; # purple (functions) + base0E = "FF00FF"; # magenta (keywords) + base0F = "FFAA00"; # amber (deprecated) + }; + + # Wallpaper path (user should replace with cassette-themed image) + wallpaper = "../../../assets/wallpapers/NGE_CF.jpg"; + wallpaperFallback = "https://raw.githubusercontent.com/NixOS/nixos-artwork/master/wallpapers/nix-wallpaper-mosaic-blue.png"; +} |
