-
Notifications
You must be signed in to change notification settings - Fork 0
/
flake.nix
141 lines (126 loc) · 3.57 KB
/
flake.nix
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
#
# flake.nix *
# ├─ ./hosts
# │ └─ default.nix
# ├─ ./darwin
# │ └─ default.nix
# └─ ./nix
# └─ default.nix
#
{
description = "Nix, NixOS and Nix Darwin System Flake Configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; # Nix Packages (Default)
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; # Unstable Nix Packages
nixos-hardware.url = "github:nixos/nixos-hardware/master"; # Hardware Specific Configurations
# User Environment Manager
home-manager = {
url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs";
};
# Unstable User Environment Manager
home-manager-unstable = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
# MacOS Package Management
darwin = {
url = "github:lnl7/nix-darwin/master";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
# Asahi Apple Silicon
apple-silicon = {
url = "github:tpwrules/nixos-apple-silicon";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
# Official Hyprland Flake
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
hyprhook = {
url = "github:Hyprhook/Hyprhook";
# Hyprspace uses latest Hyprland. We declare this to keep them in sync.
inputs.hyprland.follows = "hyprland";
};
# Hyprlock
hyprlock = {
url = "github:hyprwm/hyprlock";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
# Hypridle
hypridle = {
url = "github:hyprwm/hypridle";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
# GUB minecraft theme
minegrub = {
url = "github:Moerliy/minegrub-world-sel-theme";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
# Fixes OpenGL With Other Distros.
nixgl = {
url = "github:guibou/nixGL";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
minegrubx86 = {
url = "github:Lxtharia/minegrub-world-sel-theme";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
};
outputs = inputs @ {
self,
nixpkgs,
nixpkgs-unstable,
nixos-hardware,
home-manager,
home-manager-unstable,
darwin,
apple-silicon,
hyprland,
hyprhook,
hyprlock,
hypridle,
minegrub,
nixgl,
minegrubx86,
...
}:
# Function telling flake which inputs to use
let
# Variables Used In Flake
vars = {
user = "moritzgleissner";
location = "$HOME/.setup";
terminal = "kitty";
editor = "nvim";
};
in {
# nixosConfigurations = (
# import ./hosts {
# inherit (nixpkgs) lib;
# inherit inputs nixpkgs nixpkgs-unstable nixos-hardware home-manager nur hyprland hyprlock hypridle hyprspace plasma-manager vars; # Inherit inputs
# }
# );
darwinConfigurations = (
import ./darwin {
inherit (nixpkgs) lib;
inherit inputs nixpkgs nixpkgs-unstable home-manager-unstable darwin vars;
}
);
nixosConfigurations = (
import ./hosts {
inherit (nixpkgs) lib;
inherit inputs nixpkgs hyprland hyprhook hypridle hyprlock nixpkgs-unstable home-manager home-manager-unstable apple-silicon vars minegrub minegrubx86;
}
);
homeConfigurations = (
import ./nix {
inherit (nixpkgs) lib;
inherit inputs nixpkgs nixpkgs-unstable home-manager home-manager-unstable nixgl vars;
}
);
};
}