All my system configs and packages in one repo
at main 145 lines 3.6 kB view raw
1{ 2 description = "Leah's NixOS configurations + more"; 3 4 nixConfig = { 5 extra-substituters = [ 6 "https://pluiedev.cachix.org" 7 ]; 8 extra-trusted-public-keys = [ 9 "pluiedev.cachix.org-1:tW7LdIlB2UV3DM/DOVlgxg0ON+8YJRIW1aKxPKFOwzI=" 10 ]; 11 }; 12 13 inputs = { 14 nixpkgs.url = "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"; 15 16 # NOTE: please keep this in alphabetical order. 17 18 deploy-rs = { 19 url = "github:serokell/deploy-rs"; 20 inputs.nixpkgs.follows = "nixpkgs"; 21 }; 22 23 flake-parts = { 24 url = "github:hercules-ci/flake-parts"; 25 inputs.nixpkgs-lib.follows = "nixpkgs"; 26 }; 27 28 ghostty = { 29 url = "github:pluiedev/ghostty/edge"; 30 inputs.nixpkgs.follows = "nixpkgs"; 31 }; 32 33 hjem = { 34 url = "github:feel-co/hjem?rev=a1e391395fee2f2ddbb8e9efd5da68cf60406835"; 35 inputs.nixpkgs.follows = "nixpkgs"; 36 }; 37 38 hjem-rum = { 39 url = "github:snugnug/hjem-rum"; 40 inputs.nixpkgs.follows = "nixpkgs"; 41 }; 42 43 nix-index-database = { 44 url = "github:nix-community/nix-index-database"; 45 inputs.nixpkgs.follows = "nixpkgs"; 46 }; 47 48 nixos-hardware.url = "github:pluiedev/nixos-hardware/pluie/jj-nsvpsuspltqm"; 49 50 nixos-generators = { 51 url = "github:nix-community/nixos-generators"; 52 inputs.nixpkgs.follows = "nixpkgs"; 53 }; 54 55 sops-nix = { 56 url = "github:Mic92/sops-nix"; 57 inputs.nixpkgs.follows = "nixpkgs"; 58 }; 59 60 tangled = { 61 url = "git+https://tangled.org/tangled.org/core?shallow=1"; 62 inputs = { 63 nixpkgs.follows = "nixpkgs"; 64 65 # We don't need any of these 66 flake-compat.follows = ""; 67 indigo.follows = ""; 68 htmx-src.follows = ""; 69 htmx-ws-src.follows = ""; 70 lucide-src.follows = ""; 71 inter-fonts-src.follows = ""; 72 actor-typeahead-src.follows = ""; 73 ibm-plex-mono-src.follows = ""; 74 }; 75 }; 76 77 tranquil-pds = { 78 url = "git+https://tangled.org/lewis.moe/bspds-sandbox?rev=32fee7a7fff8493b78ca078a840b5819718f297d"; 79 inputs.nixpkgs.follows = "nixpkgs"; 80 }; 81 }; 82 83 outputs = 84 inputs: 85 inputs.flake-parts.lib.mkFlake { inherit inputs; } { 86 systems = [ 87 "x86_64-linux" 88 "x86_64-darwin" 89 ]; 90 91 imports = [ 92 ./overlay.nix 93 ./systems/fettuccine 94 ./systems/pappardelle 95 ./systems/focaccia 96 ./systems/brioche 97 ./systems/deploy.nix 98 ]; 99 100 flake = { 101 hjemModules = { 102 hjem-ext = import ./modules/hjem-ext; 103 hjem-ctp = import ./modules/hjem-ctp; 104 }; 105 106 checks = 107 let 108 deployChecks = builtins.mapAttrs ( 109 _: deployLib: deployLib.deployChecks inputs.self.deploy 110 ) inputs.deploy-rs.lib; 111 in 112 deployChecks // inputs.self.packages; 113 }; 114 115 perSystem = 116 { 117 pkgs, 118 lib, 119 system, 120 ... 121 }: 122 { 123 # Allow Flake checks to pass 124 _module.args.pkgs = import inputs.nixpkgs { 125 inherit system; 126 config.allowUnfree = true; 127 }; 128 129 packages = lib.packagesFromDirectoryRecursive { 130 inherit (pkgs) callPackage; 131 directory = ./packages; 132 }; 133 134 devShells.default = pkgs.mkShellNoCC { 135 packages = with pkgs; [ 136 nixd 137 nixfmt 138 deploy-rs 139 sops 140 ]; 141 env.SOPS_AGE_KEY_CMD = "${./age_from_1password.nu}"; 142 }; 143 }; 144 }; 145}