summaryrefslogtreecommitdiffstats
path: root/flake.nix
blob: b791f4016f018fcefe25dd2a528128b8f0eec603 (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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
{
  description = "Based and Minimal Flake For Darwin";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    nix-darwin = {
      url = "github:nix-darwin/nix-darwin/master";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    my-slstatus = {
      url = "git://git.skullheadx.com/slstatus.git";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    my-surf = {
      url = "git://git.skullheadx.com/surf.git";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    my-dwm = {
      url = "git://git.skullheadx.com/dwm.git";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    my-st = {
      url = "git://git.skullheadx.com/st.git";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    my-dmenu = {
      url = "git://git.skullheadx.com/dmenu.git";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    nvf = {
      url = "github:notashelf/nvf";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    hjem = {
      url = "github:feel-co/hjem";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };
  outputs = {
    self,
    nixpkgs,
    hjem,
    my-slstatus,
    my-surf,
    my-dwm,
    my-st,
    my-dmenu,
    nvf,
    nix-darwin,
    home-manager,
  } @ inputs: let
    system = "x86_64-linux";
    pkgs = nixpkgs.legacyPackages.${system};
    nvim = nvf.lib.neovimConfiguration {
      inherit pkgs;
      modules = [./nvf/nvf.nix];
    };

    system-darwin = "aarch64-darwin";
    pkgs-darwin = nixpkgs.legacyPackages.${system-darwin};
    nvim-darwin = nvf.lib.neovimConfiguration {
      pkgs = pkgs-darwin;
      modules = [./nvf/nvf.nix];
    };
  in {
    nixosConfigurations.nepsis = nixpkgs.lib.nixosSystem {
      specialArgs = {inherit inputs nvim;};
      modules = [
        hjem.nixosModules.default
        ./linux-common.nix
        ./hosts/nepsis/configuration.nix
        ./overlays.nix
      ];
    };
    nixosConfigurations.icon = nixpkgs.lib.nixosSystem {
      specialArgs = {inherit inputs nvim;};
      modules = [
        hjem.nixosModules.default
        ./linux-common.nix
        ./hosts/icon/configuration.nix
        ./overlays.nix
      ];
    };

    packages.${system}.nvim = nvim.neovim;
    packages.${system-darwin}.nvim = nvim-darwin.neovim;

    darwinConfigurations = {
      kenosis = nix-darwin.lib.darwinSystem {
        specialArgs = {inherit inputs nvim-darwin;};
        modules = [
          ./darwin-common.nix
          ./hosts/kenosis/configuration.nix
          ./overlays.nix
          home-manager.darwinModules.home-manager
          {
            users.users.andrew = {
              home = /Users/andrew;
            };
            home-manager.useGlobalPkgs = true;
            home-manager.useUserPackages = true;
            home-manager.extraSpecialArgs = {
              inherit inputs;
            };
            home-manager.users.andrew = {
              imports = [./home.nix];
              home.username = "andrew";
              home.homeDirectory = /Users/andrew;
            };
          }
        ];
      };
      bear = nix-darwin.lib.darwinSystem {
        specialArgs = {inherit inputs nvim-darwin;};
        modules = [
          ./darwin-common.nix
          ./hosts/bear/configuration.nix
          ./overlays.nix
          home-manager.darwinModules.home-manager
          {
            users.users.andrewmontgomery = {
              home = /Users/andrewmontgomery;
            };
            home-manager.useGlobalPkgs = true;
            home-manager.useUserPackages = true;
            home-manager.extraSpecialArgs = {
              inherit inputs;
            };
            home-manager.users.andrewmontgomery = {
              imports = [./home.nix];
              home.username = "andrewmontgomery";
              home.homeDirectory = /Users/andrewmontgomery;
            };
          }
        ];
      };
    };
  };
}