Kieran's opinionated (and probably slightly dumb) nix config
1{
2 description = "Kieran's opinionated (and probably slightly dumb) nix config";
3
4 inputs = {
5 # Nixpkgs
6 nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
7 nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
8
9 # Lix
10 lix-module = {
11 url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz";
12 inputs.nixpkgs.follows = "nixpkgs";
13 };
14
15 # NixOS hardware configuration
16 hardware.url = "github:NixOS/nixos-hardware/master";
17
18 # Home manager
19 home-manager.url = "github:nix-community/home-manager/release-25.05";
20 home-manager.inputs.nixpkgs.follows = "nixpkgs";
21
22 disko.url = "github:nix-community/disko";
23 disko.inputs.nixpkgs.follows = "nixpkgs";
24
25 # agenix
26 agenix.url = "github:ryantm/agenix";
27
28 spicetify-nix = {
29 url = "github:Gerg-L/spicetify-nix";
30 inputs.nixpkgs.follows = "nixpkgs";
31 };
32
33 catppuccin = {
34 url = "github:catppuccin/nix?rev=f518f96a60aceda4cd487437b25eaa48d0f1b97d";
35 inputs.nixpkgs.follows = "nixpkgs";
36 };
37
38 catppuccin-vsc = {
39 url = "https://flakehub.com/f/catppuccin/vscode/*.tar.gz";
40 };
41
42 nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
43
44 ghostty = {
45 url = "github:ghostty-org/ghostty";
46 };
47
48 frc-nix = {
49 url = "github:frc4451/frc-nix";
50 inputs.nixpkgs.follows = "nixpkgs";
51 };
52
53 claude-desktop = {
54 url = "github:k3d3/claude-desktop-linux-flake";
55 inputs.nixpkgs.follows = "nixpkgs";
56 };
57
58 hyprland-contrib = {
59 url = "github:hyprwm/contrib";
60 inputs.nixpkgs.follows = "nixpkgs";
61 };
62
63 nixvim.url = "github:taciturnaxolotl/nixvim";
64
65 zed = {
66 url = "github:oscilococcinum/zen-browser-nix";
67 inputs.nixpkgs.follows = "nixpkgs";
68 };
69
70 terminal-wakatime = {
71 url = "github:taciturnaxolotl/terminal-wakatime";
72 inputs.nixpkgs.follows = "nixpkgs";
73 };
74
75 ctfd-alerts = {
76 url = "github:taciturnaxolotl/ctfd-alerts";
77 inputs.nixpkgs.follows = "nixpkgs";
78 };
79
80 crush = {
81 url = "git+ssh://git@github.com/charmbracelet/crush?ref=taciturnaxoltol/flake";
82 inputs.nixpkgs.follows = "nixpkgs";
83 };
84
85 flare = {
86 url = "github:ByteAtATime/flare/feat/nix";
87 inputs.nixpkgs.follows = "nixpkgs";
88 };
89
90 import-tree.url = "github:vic/import-tree";
91 };
92
93 outputs =
94 {
95 self,
96 nixpkgs,
97 nixpkgs-unstable,
98 lix-module,
99 agenix,
100 home-manager,
101 ...
102 }@inputs:
103 let
104 outputs = inputs.self.outputs;
105 unstable-overlays = {
106 nixpkgs.overlays = [
107 (final: prev: {
108 unstable = import nixpkgs-unstable {
109 config.allowUnfree = true;
110 };
111
112 bambu-studio = prev.bambu-studio.overrideAttrs (oldAttrs: {
113 version = "01.00.01.50";
114 src = prev.fetchFromGitHub {
115 owner = "bambulab";
116 repo = "BambuStudio";
117 rev = "v01.00.01.50";
118 hash = "sha256-7mkrPl2CQSfc1lRjl1ilwxdYcK5iRU//QGKmdCicK30=";
119 };
120 });
121 })
122 ];
123 };
124 in
125 {
126 # NixOS configuration entrypoint
127 # Available through 'nixos-rebuild --flake .#your-hostname'
128 nixosConfigurations = {
129 moonlark = nixpkgs.lib.nixosSystem {
130 specialArgs = { inherit inputs outputs; };
131
132 # > Our main nixos configuration file <
133 modules = [
134 lix-module.nixosModules.default
135 inputs.disko.nixosModules.disko
136 { disko.devices.disk.disk1.device = "/dev/vda"; }
137 agenix.nixosModules.default
138 unstable-overlays
139 { nixpkgs.hostPlatform = "x86_64-linux"; }
140 ./nixos/machines/moonlark/configuration.nix
141 ];
142 };
143 };
144
145 # Standalone home-manager configurations
146 # Available through 'home-manager --flake .#username@hostname'
147 homeConfigurations = {
148 "tacyon" = home-manager.lib.homeManagerConfiguration {
149 extraSpecialArgs = {
150 inherit inputs outputs;
151 nixpkgs-unstable = nixpkgs-unstable;
152 };
153 modules = [
154 ./home-manager/machines/tacyon
155 unstable-overlays
156 { nixpgs.hostPlatform = "aarch64-linux"; }
157 ];
158 };
159
160 "nest" = home-manager.lib.homeManagerConfiguration {
161 extraSpecialArgs = {
162 inherit inputs outputs;
163 nixpkgs-unstable = nixpkgs-unstable;
164 };
165 modules = [
166 ./home-manager/machines/nest
167 unstable-overlays
168 { nixpkgs.hostPlatform = "x86_64-linux"; }
169 ];
170 };
171
172 "ember" = home-manager.lib.homeManagerConfiguration {
173 extraSpecialArgs = {
174 inherit inputs outputs;
175 nixpkgs-unstable = nixpkgs-unstable;
176 };
177 modules = [
178 ./home-manager/machines/ember
179 unstable-overlays
180 { nixpkgs.hostPlatform = "x86_64-linux"; }
181 ];
182 };
183 };
184
185 formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-tree;
186 };
187}