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/locale.nix
37 ./profiles/common/networking.nix
38
39 ./profiles/runestone/hardware-configuration.nix
40 ./profiles/runestone/base.nix
41 ./profiles/runestone/postgres.nix
42 ];
43 };
44
45 onyx = nixpkgs.lib.nixosSystem {
46 system = "x86_64-linux";
47
48 specialArgs = {
49 user-pkgs = self.packages."x86_64-linux";
50 unstable-pkgs = import nixpkgs-unstable {
51 system = "x86_64-linux";
52 config.allowUnfree = true;
53 };
54 };
55
56 modules = [
57 ({ ... }: {
58 system.stateVersion = "25.11";
59 })
60
61 nixos-hardware.nixosModules.framework-desktop-amd-ai-max-300-series
62
63 disko.nixosModules.disko
64 ./profiles/onyx/disks.nix
65
66 ./profiles/common/base.nix
67 ./profiles/common/locale.nix
68 ./profiles/common/networking.nix
69
70 ./profiles/onyx/hardware-configuration.nix
71 ./profiles/onyx/base.nix
72 ./profiles/onyx/nvidia.nix
73 ./profiles/onyx/hyper-v.nix
74 ];
75 };
76 };
77
78 packages = {
79 x86_64-linux = import ./packages/default.nix {
80 pkgs = import nixpkgs { system = "x86_64-linux"; };
81 };
82 };
83 };
84}