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.0.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 catppuccin.url = "github:catppuccin/nix";
35 catppuccin-vsc.url = "https://flakehub.com/f/catppuccin/vscode/\*.tar.gz";
36
37 nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
38
39 nix-flatpak.url = "github:gmodena/nix-flatpak";
40
41 ghostty = {
42 url = "github:ghostty-org/ghostty";
43 };
44
45 frc-nix = {
46 url = "github:frc4451/frc-nix";
47 inputs.nixpkgs.follows = "nixpkgs";
48 };
49
50 claude-desktop = {
51 url = "github:taciturnaxolotl/claude-desktop-linux-flake";
52 inputs.nixpkgs.follows = "nixpkgs";
53 };
54
55 hyprland-contrib = {
56 url = "github:hyprwm/contrib";
57 inputs.nixpkgs.follows = "nixpkgs";
58 };
59
60 nixvim.url = "github:taciturnaxolotl/nixvim";
61
62 zed = {
63 url = "github:oscilococcinum/zen-browser-nix";
64 inputs.nixpkgs.follows = "nixpkgs";
65 };
66
67 terminal-wakatime = {
68 url = "github:taciturnaxolotl/terminal-wakatime";
69 inputs.nixpkgs.follows = "nixpkgs";
70 };
71
72 ctfd-alerts = {
73 url = "github:taciturnaxolotl/ctfd-alerts";
74 inputs.nixpkgs.follows = "nixpkgs";
75 };
76 };
77
78 outputs =
79 {
80 self,
81 nixpkgs,
82 nixpkgs-unstable,
83 lix-module,
84 nix-flatpak,
85 agenix,
86 home-manager,
87 ...
88 }@inputs:
89 let
90 inherit (self) outputs;
91 system = "x86_64-linux";
92 unstable-overlays = {
93 nixpkgs.overlays = [
94 (final: prev: {
95 unstable = import nixpkgs-unstable {
96 inherit system;
97 config.allowUnfree = true;
98 };
99
100 bambu-studio = prev.bambu-studio.overrideAttrs (oldAttrs: {
101 version = "01.00.01.50";
102 src = prev.fetchFromGitHub {
103 owner = "bambulab";
104 repo = "BambuStudio";
105 rev = "v01.00.01.50";
106 hash = "sha256-7mkrPl2CQSfc1lRjl1ilwxdYcK5iRU//QGKmdCicK30=";
107 };
108 });
109
110 })
111 ];
112 };
113 in
114 {
115 # NixOS configuration entrypoint
116 # Available through 'nixos-rebuild --flake .#your-hostname'
117 nixosConfigurations = {
118 moonlark = nixpkgs.lib.nixosSystem {
119 system = "x86_64-linux";
120
121 specialArgs = { inherit inputs outputs; };
122
123 # > Our main nixos configuration file <
124 modules = [
125 lix-module.nixosModules.default
126 nix-flatpak.nixosModules.nix-flatpak
127 inputs.disko.nixosModules.disko
128 { disko.devices.disk.disk1.device = "/dev/vda"; }
129 agenix.nixosModules.default
130 ./moonlark/configuration.nix
131 unstable-overlays
132 ];
133 };
134 };
135
136 # Standalone home-manager configurations
137 # Available through 'home-manager --flake .#username@hostname'
138 homeConfigurations = {
139 "tacyon" = home-manager.lib.homeManagerConfiguration {
140 pkgs = import nixpkgs {
141 system = "aarch64-linux";
142 config.allowUnfree = true;
143 };
144 extraSpecialArgs = {
145 inherit inputs outputs;
146 nixpkgs-unstable = nixpkgs-unstable;
147 system = "aarch64-linux";
148 };
149 modules = [
150 ./home-manager/machines/tacyon
151 unstable-overlays
152 ];
153 };
154
155 "nest" = home-manager.lib.homeManagerConfiguration {
156 pkgs = import nixpkgs {
157 system = "x86_64-linux";
158 config.allowUnfree = true;
159 };
160 extraSpecialArgs = {
161 inherit inputs outputs;
162 nixpkgs-unstable = nixpkgs-unstable;
163 system = "x86_64-linux";
164 };
165 modules = [
166 ./home-manager/machines/nest
167 unstable-overlays
168 ];
169 };
170
171 "ember" = home-manager.lib.homeManagerConfiguration {
172 pkgs = import nixpkgs {
173 system = "x86_64-linux";
174 config.allowUnfree = true;
175 };
176 extraSpecialArgs = {
177 inherit inputs outputs;
178 nixpkgs-unstable = nixpkgs-unstable;
179 system = "x86_64-linux";
180 };
181 modules = [
182 ./home-manager/machines/ember
183 unstable-overlays
184 ];
185 };
186 };
187 };
188}