flake.nix (view raw)
1{
2 description = "charlotte's NixOS flake";
3 inputs = {
4 nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
5 nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
6
7 disko.url = "github:nix-community/disko";
8 disko.inputs.nixpkgs.follows = "nixpkgs";
9
10 nixos-hardware.url = "github:NixOS/nixos-hardware/master";
11 };
12 outputs =
13 { self
14 , nixpkgs
15 , nixpkgs-unstable
16 , disko
17 , nixos-hardware
18 , ...
19 }@inputs:
20 {
21 nixosConfigurations = {
22 runestone = nixpkgs.lib.nixosSystem {
23 system = "x86_64-linux";
24
25 specialArgs = {
26 user-pkgs = self.packages."x86_64-linux";
27 unstable-pkgs = nixpkgs-unstable.legacyPackages."x86_64-linux";
28 };
29
30 modules = [
31 ({ ... }: {
32 system.stateVersion = "24.05";
33 })
34
35 ./profiles/common/base.nix
36 ./profiles/common/dev.nix
37 ./profiles/common/locale.nix
38 ./profiles/common/networking.nix
39
40 ./profiles/runestone/hardware-configuration.nix
41 ./profiles/runestone/base.nix
42 ./profiles/runestone/borg.nix
43 ./profiles/runestone/postgres.nix
44 ];
45 };
46
47 onyx = nixpkgs.lib.nixosSystem {
48 system = "x86_64-linux";
49
50 specialArgs = {
51 user-pkgs = self.packages."x86_64-linux";
52 unstable-pkgs = import nixpkgs-unstable {
53 system = "x86_64-linux";
54 config.allowUnfree = true;
55 };
56 };
57
58 modules = [
59 ({ ... }: {
60 system.stateVersion = "25.11";
61 })
62
63 nixos-hardware.nixosModules.framework-desktop-amd-ai-max-300-series
64
65 disko.nixosModules.disko
66 ./profiles/onyx/disks.nix
67
68 ./profiles/common/base.nix
69 ./profiles/common/dev.nix
70 ./profiles/common/locale.nix
71 ./profiles/common/networking.nix
72
73 ./profiles/onyx/hardware-configuration.nix
74 ./profiles/onyx/base.nix
75 ./profiles/onyx/nvidia.nix
76 ./profiles/onyx/hyper-v.nix
77 ./profiles/onyx/borg.nix
78 ];
79 };
80 };
81
82 packages = {
83 x86_64-linux = import ./packages/default.nix {
84 pkgs = import nixpkgs { system = "x86_64-linux"; };
85 };
86 };
87 };
88}