aboutsummaryrefslogtreecommitdiff
path: root/modules/user/desktop/default.nix
blob: 7cd19ce5ebcf0afb77247c8168a9797e92076b83 (plain) (blame)
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
{
  config,
  lib,
  pkgs,
  options,
  ...
}:
{
  imports = [
    ./components
    ./window-managers
  ];

  options.desktop.windowManager = lib.mkOption {
    description = "Which window manager to use";
    default = null;
    type = with lib.types; nullOr (enum [ ]);
  };

  config = {
    fonts.fontconfig.enable = true;
    gtk = {
      enable = true;
      colorScheme = "dark";
      cursorTheme = {
        package = pkgs.catppuccin-cursors.mochaDark;
        name = "catppuccin-mocha-dark-cursors";
        size = 24;
      };

      theme = {
        package = (
          pkgs.catppuccin-gtk.override {
            variant = "mocha";
          }
        );

        name = "catppuccin-mocha-blue-standard";
      };
    };

    home = {
      file."Pictures/wallpaper.png" = {
        enable = (config.desktop.windowManager != null);
        source = ./wallpaper.png;
      };

      packages = with pkgs; [
        brightnessctl
        fira-code
        keepassxc
        nerd-fonts.fira-code
      ];
    };

    programs = {
      foot = {
        enable = lib.mkDefault (config.desktop.windowManager != null);
        settings = {
          bell = {
            notify = true;
            urgent = true;
          };

          colors = {
            background = "1e1e2e";
            cursor = "11111b f5e0dc";
            foreground = "cdd6f4";
            regular0 = "45475a";
            regular1 = "f38ba8";
            regular2 = "a6e3a1";
            regular3 = "f9e2af";
            regular4 = "89b4fa";
            regular5 = "f5c2e7";
            regular6 = "94e2d5";
            regular7 = "bac2de";
            bright0 = "585b70";
            bright1 = "f38ba8";
            bright2 = "a6e3a1";
            bright3 = "f9e2af";
            bright4 = "89b4fa";
            bright5 = "f5c2e7";
            bright6 = "94e2d5";
            bright7 = "a6adc8";
            "16" = "fab387";
            "17" = "f5e0dc";
            jump-labels = "11111b fab387";
            search-box-match = "cdd6f4 313244";
            search-box-no-match = "11111b f38ba8";
            selection-background = "414356";
            selection-foreground = "cdd6f4";
            urls = "89b4fa";
          };

          cursor.blink = true;
          main = {
            dpi-aware = lib.mkDefault true;
            font = lib.mkDefault "FiraCode Nerd Font Mono:size=8";
          };

          mouse.hide-when-typing = true;
        };
      };

      librewolf = {
        enable = lib.mkDefault (config.desktop.windowManager != null);
        profiles = {
          # sidebar visibility keeps getting reset when launching the browser.
          default.settings."sidebar.visibility" = "hide-sidebar";
          noRFP = {
            id = 1;
            settings = {
              "privacy.resistFingerprinting" = false;
              "sidebar.visibility" = "hide-sidebar";
              "webgl.disabled" = false;
            };
          };
        };

        settings = {
          "browser.uidensity" = 1;
          "sidebar.animation.enabled" = false;
          "sidebar.new-sidebar.has-used" = true;
          "sidebar.verticalTabs" = true;
        };
      };
    };
  };
}