-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflake.nix
More file actions
122 lines (102 loc) · 3.34 KB
/
Copy pathflake.nix
File metadata and controls
122 lines (102 loc) · 3.34 KB
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
{
description = "AME's darwin system";
inputs = {
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixpkgs-24.11-darwin";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nixos-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
darwin.url = "github:lnl7/nix-darwin";
darwin.inputs.nixpkgs.follows = "nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs-unstable";
};
outputs = { self, darwin, home-manager, ... }@inputs:
let
inherit (darwin.lib) darwinSystem;
inherit (inputs.nixpkgs-unstable.lib) nixosSystem;
nixpkgs = inputs.nixpkgs-unstable;
nixpkgsConfig = {
config.allowUnfree = true;
overlays = builtins.attrValues self.overlays;
};
mkDarwinSystem = { hostname, system, username }:
darwinSystem {
inherit system;
modules = [
# Host-specific configuration (includes shared.nix)
./hosts/${hostname}.nix
# Set nixPath for compatibility
{
nix.nixPath = [ "nixpkgs=${nixpkgs}" ];
}
# Home manager integration
home-manager.darwinModules.home-manager
{
nixpkgs = nixpkgsConfig;
home-manager.useUserPackages = true;
home-manager.users."${username}" = import ./users/${username};
}
];
};
mkNixosSystem = { hostname, system }:
nixosSystem {
inherit system;
modules = [
# Host-specific configuration (includes shared.nix)
./hosts/${hostname}.nix
# Set nixPath for compatibility
{
nix.nixPath = [ "nixpkgs=${nixpkgs}" ];
}
# Home manager integration
home-manager.nixosModules.home-manager
{
nixpkgs = nixpkgsConfig;
home-manager.useUserPackages = true;
home-manager.users.ame = import ./users/ame;
}
];
};
in
{
darwinConfigurations = {
laforge = mkDarwinSystem {
hostname = "laforge";
system = "x86_64-darwin";
username = "ame";
};
"ROME" = mkDarwinSystem {
hostname = "ROME";
system = "x86_64-darwin";
username = "andrew.elgert";
};
spock = mkDarwinSystem {
hostname = "spock";
system = "aarch64-darwin";
username = "ame";
};
riker = mkDarwinSystem {
hostname = "riker";
system = "aarch64-darwin";
username = "ame";
};
};
nixosConfigurations = {
# Example Linux desktop configuration
linux-desktop = mkNixosSystem {
hostname = "linux-desktop";
system = "x86_64-linux";
};
};
darwinPackages = self.darwinConfigurations.laforge.pkgs;
darwinModules = {
podman-darwin = import ./modules/podman-darwin.nix;
};
nixosModules = {
podman-linux = import ./modules/podman-linux.nix;
gnome-defaults = import ./modules/system/gnome-defaults.nix;
linux-packages = import ./modules/system/linux-packages.nix;
};
overlays = { };
};
}