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 crush = { 78 url = "git+ssh://git@github.com/charmbracelet/crush?ref=taciturnaxoltol/flake"; 79 inputs.nixpkgs.follows = "nixpkgs"; 80 }; 81 }; 82 83 outputs = 84 { 85 self, 86 nixpkgs, 87 nixpkgs-unstable, 88 lix-module, 89 nix-flatpak, 90 agenix, 91 home-manager, 92 ... 93 }@inputs: 94 let 95 inherit (self) outputs; 96 system = "x86_64-linux"; 97 unstable-overlays = { 98 nixpkgs.overlays = [ 99 (final: prev: { 100 unstable = import nixpkgs-unstable { 101 inherit system; 102 config.allowUnfree = true; 103 }; 104 105 bambu-studio = prev.bambu-studio.overrideAttrs (oldAttrs: { 106 version = "01.00.01.50"; 107 src = prev.fetchFromGitHub { 108 owner = "bambulab"; 109 repo = "BambuStudio"; 110 rev = "v01.00.01.50"; 111 hash = "sha256-7mkrPl2CQSfc1lRjl1ilwxdYcK5iRU//QGKmdCicK30="; 112 }; 113 }); 114 115 }) 116 ]; 117 }; 118 in 119 { 120 # NixOS configuration entrypoint 121 # Available through 'nixos-rebuild --flake .#your-hostname' 122 nixosConfigurations = { 123 moonlark = nixpkgs.lib.nixosSystem { 124 system = "x86_64-linux"; 125 126 specialArgs = { inherit inputs outputs; }; 127 128 # > Our main nixos configuration file < 129 modules = [ 130 lix-module.nixosModules.default 131 nix-flatpak.nixosModules.nix-flatpak 132 inputs.disko.nixosModules.disko 133 { disko.devices.disk.disk1.device = "/dev/vda"; } 134 agenix.nixosModules.default 135 ./moonlark/configuration.nix 136 unstable-overlays 137 ]; 138 }; 139 }; 140 141 # Standalone home-manager configurations 142 # Available through 'home-manager --flake .#username@hostname' 143 homeConfigurations = { 144 "tacyon" = home-manager.lib.homeManagerConfiguration { 145 pkgs = import nixpkgs { 146 system = "aarch64-linux"; 147 config.allowUnfree = true; 148 }; 149 extraSpecialArgs = { 150 inherit inputs outputs; 151 nixpkgs-unstable = nixpkgs-unstable; 152 system = "aarch64-linux"; 153 }; 154 modules = [ 155 ./home-manager/machines/tacyon 156 unstable-overlays 157 ]; 158 }; 159 160 "nest" = home-manager.lib.homeManagerConfiguration { 161 pkgs = import nixpkgs { 162 system = "x86_64-linux"; 163 config.allowUnfree = true; 164 }; 165 extraSpecialArgs = { 166 inherit inputs outputs; 167 nixpkgs-unstable = nixpkgs-unstable; 168 system = "x86_64-linux"; 169 }; 170 modules = [ 171 ./home-manager/machines/nest 172 unstable-overlays 173 ]; 174 }; 175 176 "ember" = home-manager.lib.homeManagerConfiguration { 177 pkgs = import nixpkgs { 178 system = "x86_64-linux"; 179 config.allowUnfree = true; 180 }; 181 extraSpecialArgs = { 182 inherit inputs outputs; 183 nixpkgs-unstable = nixpkgs-unstable; 184 system = "x86_64-linux"; 185 }; 186 modules = [ 187 ./home-manager/machines/ember 188 unstable-overlays 189 ]; 190 }; 191 }; 192 formatter.x86_64-linux = nixpkgs.legacyPackages.${system}.nixfmt-tree; 193 }; 194}