the configuration for all my nixos machines (hacky! bad! ugly!)
1{
2 inputs = {
3 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
4 nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11";
5 nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
6 niri.url = "github:sodiboo/niri-flake";
7 nix-monitored.url = "github:ners/nix-monitored";
8 home = {
9 url = "github:nix-community/home-manager";
10 inputs.nixpkgs.follows = "nixpkgs";
11 };
12 stylix = {
13 url = "github:danth/stylix";
14 inputs.nixpkgs.follows = "nixpkgs";
15 };
16 rust-overlay = {
17 url = "github:oxalica/rust-overlay";
18 inputs = {
19 nixpkgs.follows = "nixpkgs";
20 };
21 };
22 noctalia = {
23 url = "github:noctalia-dev/noctalia-shell";
24 inputs.nixpkgs.follows = "nixpkgs";
25 inputs.noctalia-qs.follows = "noctalia-qs";
26 };
27 noctalia-qs = {
28 url = "github:noctalia-dev/noctalia-qs";
29 inputs.nixpkgs.follows = "nixpkgs";
30 };
31 };
32
33 nixConfig = {
34 extra-substituters = [
35 "https://cache.nixos.org"
36 "https://cache.lix.systems"
37 "https://nix-community.cachix.org"
38 "https://cache.garnix.io"
39 "https://niri.cachix.org"
40 ];
41 extra-trusted-public-keys = [
42 "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
43 "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
44 "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
45 "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
46 "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
47 "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
48 ];
49 };
50
51
52 outputs = {self, home, nixpkgs, nixpkgs-stable, ...}@inputs:
53 let lib = import ./lib;
54 config = {
55 allowUnfree = true;
56 };
57 overlays = [
58 inputs.rust-overlay.overlays.default
59 inputs.niri.overlays.niri
60 ];
61 in {
62 nixosConfigurations = lib.genNixOSHosts {
63 inherit inputs config overlays self;
64 baseModules = [
65 home.nixosModules.home-manager
66 self.nixosModules.default
67 inputs.niri.nixosModules.niri
68 inputs.stylix.nixosModules.stylix
69 inputs.nix-monitored.nixosModules.default
70 ];
71 };
72
73 homeConfigurations = lib.genHomeHosts {
74 inherit inputs config overlays;
75
76 user = "joshua";
77
78 baseModules = [
79 self.homeModules.default
80 inputs.niri.homeModules.niri
81 inputs.niri.homeModules.stylix
82 inputs.noctalia.homeModules.default
83 inputs.stylix.homeModules.stylix
84 ];
85 };
86
87 homeModules.default = import ./modules/home;
88 nixosModules.default = import ./modules/nixos;
89 #TODO put home-manager in dtcommon
90 # nixosConfigurations.prospero = nixpkgs.lib.nixosSystem {
91 # system = "x86_64-linux";
92 # modules = [
93 # ./all.nix
94 # home-manager.nixosModules.home-manager
95 # ./dt-common.nix
96 # ./prospero/configuration.nix
97 # ];
98 # };
99 # nixosConfigurations.uruk = nixpkgs.lib.nixosSystem {
100 # system = "x86_64-linux";
101 # modules = [
102 # ./all.nix
103 # home-manager.nixosModules.home-manager
104 # ./dt-common.nix
105 # ./uruk/configuration.nix
106 # ];
107 # };
108 };
109}