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}