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:k3d3/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}