aboutsummaryrefslogtreecommitdiff
path: root/home/rices/cassette-futurism/system.nix
blob: eab46473b2a23dc965e8e3adf166fc9f75ab94b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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
    };
  };
}