-
Notifications
You must be signed in to change notification settings - Fork 0
/
flake.nix
51 lines (42 loc) · 1.47 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
{
description = "Laurelin with the golden leaves";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
nixvirt = {
url = "https://flakehub.com/f/AshleyYakeley/NixVirt/*.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
dns = {
url = "github:nix-community/dns.nix";
inputs.nixpkgs.follows = "nixpkgs"; # (optionally)
};
nur.url = "github:nix-community/NUR";
stylix.url = "github:danth/stylix";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
};
outputs = { self, nixpkgs, nixvirt, dns, nur, hyprland, stylix, ... } @ inputs: let
pkgs = import nixpkgs { inherit inputs; };
in {
# TODO: I think I want to proxy inputs here? So that, e.g., telperion and glamdring can grab the
# stylix or nix-colors stuff? maybe `laurelin.lib.ext.{flake}`, perhaps extended with any
# additional functionality I want to add?
lib = (import ./lib) { inherit nixvirt pkgs; }; # TODO: Send `system` down to lib? for now I can hardcode
nixosModules = {
netbootable = { ... }: {
imports = [
./services/netboot/netbootable.nix
];
};
default = { ... }: {
imports = [
nixvirt.nixosModules.default
nur.modules.nixos.default
./default.nix
];
# NOTE: I have no idea why this is needed, I would've assumed it'd've passed through, very
# strange.
_module.args = inputs;
};
};
};
}