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-24.05"; 7 nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; 8 9 # NixOS hardware configuration 10 hardware.url = "github:NixOS/nixos-hardware/master"; 11 12 # Home manager 13 home-manager.url = "github:nix-community/home-manager/release-24.05"; 14 home-manager.inputs.nixpkgs.follows = "nixpkgs"; 15 16 # hyprland nix 17 Hyprnix.url = "github:hyprland-community/hyprnix"; 18 hyprland-contrib = { 19 url = "github:hyprwm/contrib"; 20 }; 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 36 nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; 37 }; 38 39 outputs = { 40 self, 41 nixpkgs, 42 nixpkgs-unstable, 43 agenix, 44 home-manager, 45 nixos-hardware, 46 hyprland-contrib, 47 ... 48 } @ inputs: let 49 inherit (self) outputs; 50 system = "x86_64-linux"; 51 unstable-overlays = { 52 nixpkgs.overlays = [ 53 (final: prev: { 54 unstable = import nixpkgs-unstable { 55 inherit system; 56 config.allowUnfree = true; 57 }; 58 }) 59 ]; 60 }; 61 in { 62 # NixOS configuration entrypoint 63 # Available through 'nixos-rebuild --flake .#your-hostname' 64 nixosConfigurations = { 65 moonlark = nixpkgs.lib.nixosSystem { 66 system = "x86_64-linux"; 67 68 specialArgs = {inherit inputs outputs;}; 69 70 # > Our main nixos configuration file < 71 modules = [ 72 inputs.disko.nixosModules.disko 73 { disko.devices.disk.disk1.device = "/dev/vda"; } 74 agenix.nixosModules.default 75 ./moonlark/configuration.nix 76 unstable-overlays 77 ]; 78 }; 79 }; 80 }; 81}