summaryrefslogtreecommitdiff
path: root/home.nix
blob: 85ad395b3e53b931ae959b70b622da76669f28c9 (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
{
  lib,
  config,
  ...
}:

let
  host = import ./hosts.nix;
in
{
  home = {
    username = host.user;
    homeDirectory = host.home;
    sessionVariables = {
      NIX_HOST = "\${NIX_HOST:-$(hostname -f 2>/dev/null || hostname)}";
      XDG_CONFIG_HOME = "${host.home}/.config";
    };
  };

  nixpkgs.config.allowUnfree = true;

  imports = [
    # (import ./system.nix).module
    ./home/base.nix
    ./home/shell.nix
    ./home/helix.nix
    ./home/tmux.nix
    ./home/vim.nix
    ./home/vcs.nix
  ]
  ++ lib.optionals (host.name == "turing") [
    (import ./home/ssh.nix {
      principals = [
        "t:human"
        "h:turing"
      ];
    })
    ./home/langs.nix
    ./home/packages.nix
    ./home/typst.nix
    ./home/pkgs_mac.nix
    ./home/ghostty.nix
  ]
  ++ lib.optionals (host.name == "cs.purdue.edu") [
    # Symlinked items from nix store are bad and do not work for ssh
    ./home/langs.nix
    ./home/cs_purdue.nix
    ./home/typst.nix
    ./home/linux.nix
  ]
  ++ lib.optionals (host.name == "vulcan") [
    ./home/langs.nix
    (import ./home/ssh.nix {
      principals = [
        "t:human"
        "t:dev"
        "h:vulcan"
      ];
    })
    ./home/linux.nix
  ]
  ++ lib.optionals (host.name == "knuth") [
    (import ./home/ssh.nix {
      principals = [
        "t:human"
        "t:dev"
        "h:knuth"
      ];
    })
    ./home/linux.nix
  ];
}