aboutsummaryrefslogtreecommitdiff
path: root/home/rices/cassette-futurism
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-04-05 22:27:45 +0200
committerNatasha Moongrave <natasha@256phi.eu>2026-04-05 22:27:45 +0200
commitb92708b616ffefae3fec27b21072f28d177bd120 (patch)
treee65414ef45ea91bfa507ab660cd7611bf64d7cd8 /home/rices/cassette-futurism
parent0a4134a7b7c33493aaacdb657b4ebefbfe6f0a25 (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/rices/cassette-futurism')
-rw-r--r--home/rices/cassette-futurism/default.nix13
-rw-r--r--home/rices/cassette-futurism/nvim.nix58
-rw-r--r--home/rices/cassette-futurism/plasma.nix51
-rw-r--r--home/rices/cassette-futurism/system.nix101
-rw-r--r--home/rices/cassette-futurism/variables.nix59
5 files changed, 282 insertions, 0 deletions
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";
+}