summaryrefslogtreecommitdiff
path: root/common/home/default.nix
blob: e64825aff7c3e7ab33ca8830bc868560626c770a (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
102
103
104
105
106
107
108
109
{
  config,
  pkgs,
  nixvim,
  ...
}:
let
  programs = [
    "git"
    "alacritty"
    "firefox"
    "nixvim"
    "hyprlock"
    "waybar"
    "zsh"
    "btop"
    "wofi"
    "password-store"
    "gpg"
    "ssh"
    "opam"
    "neomutt"
    "mbsync"
    "msmtp"
  ];
  services = [
    "syncthing"
    "hyprpaper"
    "network-manager-applet"
    "gpg-agent"
    "mbsync"
  ];
  packages = [
    pkgs.networkmanagerapplet
    pkgs.pavucontrol
    pkgs.wl-clipboard
    pkgs.virt-manager
    pkgs.gcc
    pkgs.gnumake
    pkgs.ocamlPackages.ocamlformat
    pkgs.wev
  ];
in
{
  users.n8 = {
    programs = builtins.listToAttrs (
      map (n: {
        name = n;
        value =
          if builtins.pathExists ./programs/${n}/default.nix then
            (import ./programs/${n} {
              inherit pkgs;
              home = config.home-manager.users.n8.home;
            })
          else
            { enable = true; };
      }) programs
    );

    services = builtins.listToAttrs (
      map (n: {
        name = n;
        value =
          if builtins.pathExists ./services/${n}/default.nix then
            (import ./services/${n} { inherit pkgs; })
          else
            { enable = true; };
      }) services
    );

    accounts = import ./accounts { };

    wayland.windowManager.hyprland = import ./hyprland;

    home.packages = packages;

    home.pointerCursor = {
      gtk.enable = true;
      package = pkgs.bibata-cursors;
      name = "Bibata-Modern-Classic";
      size = 24;
    };

    gtk = {
      enable = true;

      theme = {
        package = pkgs.gruvbox-dark-gtk;
        name = "gruvbox-dark";
      };

      iconTheme = {
        package = pkgs.gnome.adwaita-icon-theme;
        name = "adwaita-icon-theme";
      };

      font = {
        name = "SauceCodePro NF";
        size = 11;
      };
    };

    home.stateVersion = "24.05";

  };

  backupFileExtension = "backup";
  sharedModules = [ nixvim.homeManagerModules.nixvim ];
}