Personal Nix setup
at main 4.4 kB view raw
1{ 2 nixConfig = { 3 experimental-features = [ "nix-command" "flakes" ]; 4 }; 5 6 inputs = { 7 nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; 8 nixos-hardware.url = "github:NixOS/nixos-hardware/master"; 9 10 apple-silicon = { 11 url = "github:nix-community/nixos-apple-silicon"; 12 inputs.nixpkgs.follows = "nixpkgs"; 13 }; 14 15 lanzaboote = { 16 url = "github:nix-community/lanzaboote/v0.4.2"; 17 inputs.nixpkgs.follows = "nixpkgs"; 18 }; 19 20 agenix = { 21 url = "github:ryantm/agenix"; 22 inputs = { 23 darwin.follows = "darwin"; 24 nixpkgs.follows = "nixpkgs"; 25 home-manager.follows = "home-manager"; 26 }; 27 }; 28 29 flake-utils.url = "github:numtide/flake-utils"; 30 31 home-manager = { 32 url = "github:nix-community/home-manager"; 33 inputs.nixpkgs.follows = "nixpkgs"; 34 }; 35 36 darwin = { 37 url = "github:lnl7/nix-darwin"; 38 inputs.nixpkgs.follows = "nixpkgs"; 39 }; 40 41 language-servers = { 42 url = "github:kitten/language-servers.nix"; 43 inputs = { 44 nixpkgs.follows = "nixpkgs"; 45 flake-utils.follows = "flake-utils"; 46 }; 47 }; 48 49 system-shell = { 50 url = "github:kitten/system-shell"; 51 inputs = { 52 nixpkgs.follows = "nixpkgs"; 53 flake-utils.follows = "flake-utils"; 54 }; 55 }; 56 57 nvim-plugins = { 58 url = "github:kitten/system-nvim-plugins.nix"; 59 inputs = { 60 nixpkgs.follows = "nixpkgs"; 61 flake-utils.follows = "flake-utils"; 62 }; 63 }; 64 65 yeetmouse = { 66 url = "github:AndyFilter/yeetmouse?dir=nix"; 67 inputs.nixpkgs.follows = "nixpkgs"; 68 }; 69 70 android-sdk = { 71 url = "github:tadfisher/android-nixpkgs/stable"; 72 inputs = { 73 nixpkgs.follows = "nixpkgs"; 74 flake-utils.follows = "flake-utils"; 75 }; 76 }; 77 78 zen-browser = { 79 url = "github:0xc000022070/zen-browser-flake"; 80 inputs = { 81 nixpkgs.follows = "nixpkgs"; 82 home-manager.follows = "home-manager"; 83 }; 84 }; 85 86 tangled = { 87 url = "git+https://tangled.org/@tangled.org/core"; 88 inputs.nixpkgs.follows = "nixpkgs"; 89 }; 90 }; 91 92 outputs = inputs @ { self, ... }: let 93 inherit (inputs.nixpkgs) lib; 94 inherit (import ./lib/system.nix inputs) mkSystem; 95 eachSystem = lib.genAttrs ["aarch64-darwin" "aarch64-linux" "x86_64-darwin" "x86_64-linux"]; 96 overlays = [ 97 self.overlays.default 98 self.overlays.lix 99 inputs.nvim-plugins.overlays.default 100 inputs.android-sdk.overlays.default 101 inputs.language-servers.overlays.default 102 inputs.system-shell.overlays.default 103 (self: super: { 104 zen-browser = inputs.zen-browser.packages.${self.system}.beta; 105 }) 106 ]; 107 in { 108 darwinConfigurations."sprite" = mkSystem { 109 inherit overlays; 110 system = "aarch64-darwin"; 111 hostname = "sprite"; 112 }; 113 114 darwinConfigurations."fanta" = mkSystem { 115 inherit overlays; 116 system = "aarch64-darwin"; 117 hostname = "fanta"; 118 }; 119 120 darwinConfigurations."irnbru" = mkSystem { 121 inherit overlays; 122 system = "aarch64-darwin"; 123 hostname = "irnbru"; 124 }; 125 126 darwinConfigurations."sodacream" = mkSystem { 127 inherit overlays; 128 system = "aarch64-darwin"; 129 hostname = "sodacream"; 130 }; 131 132 nixosConfigurations."pepper" = mkSystem { 133 inherit overlays; 134 system = "x86_64-linux"; 135 hostname = "pepper"; 136 }; 137 138 nixosConfigurations."cola" = mkSystem { 139 inherit overlays; 140 system = "x86_64-linux"; 141 hostname = "cola"; 142 }; 143 144 nixosConfigurations."ramune" = mkSystem { 145 inherit overlays; 146 system = "aarch64-linux"; 147 hostname = "ramune"; 148 }; 149 150 overlays = { 151 default = import ./lib/pkgs; 152 lix = import ./lib/lix-overlay.nix; 153 }; 154 155 packages = eachSystem (system: let 156 pkgs = import inputs.nixpkgs { 157 inherit system; 158 overlays = [ self.overlays.default self.overlays.lix ]; 159 }; 160 in { 161 inherit (inputs.agenix.packages.${system}) agenix; 162 inherit (inputs.darwin.packages.${system}) darwin-rebuild; 163 } // { 164 inherit (pkgs) 165 pinentry-touchid 166 steamworks-sdk-redist 167 systemd-transparent-udp-forwarderd 168 force-bind; 169 }); 170 171 apps = eachSystem (system: import ./lib/apps { 172 inherit lib; 173 pkgs = inputs.nixpkgs.legacyPackages.${system}; 174 }); 175 }; 176}