[ MIRROR ] NixOS & Home-Manager configuration git.ngill.net/dotfiles.git
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141{ system, inputs, pkgs, home-manager, lib, user, util, ...}:
with builtins;{ mkHost = { name, initrdMods, kernelMods, kernelParams, kernelPackage, systemConfig ? { }, users, cpuCores, stateVersion, extraConfig ? { }, extraPackages ? [ ], extraNixosModules ? [ ], extraHomeManagerModules ? [ ], hostMeta ? { }, }: let sysUsers = (map (u: user.mkSystemUser u) users);
sysModulesPath = ../modules/system;
sysConfig = config: lib.mkMerge ( builtins.map ( c: (import "${sysModulesPath}/${c.name}" { inherit pkgs lib util config ; modulesPath = sysModulesPath; }) c.value ) (lib.attrsToList systemConfig) ); in lib.nixosSystem { inherit system;
specialArgs = { inherit hostMeta; };
modules = sysUsers ++ [ { networking.hostName = "${name}"; networking.networkmanager.enable = true; networking.nameservers = [ "1.1.1.1" "1.0.0.1" "9.9.9.9" ];
boot.initrd.availableKernelModules = initrdMods; boot.kernelModules = kernelMods; boot.kernelParams = kernelParams; boot.kernelPackages = kernelPackage;
nixpkgs.pkgs = pkgs; nix.settings = { max-jobs = lib.mkDefault cpuCores; trusted-users = [ "@wheel" ]; substituters = [ "https://olduser101.cachix.org" ]; trusted-public-keys = [ "olduser101.cachix.org-1:DVqbs5NGDnwbI2VayMHpy/4mHF7O7mYhMuhjvT6fOLI=" ]; experimental-features = [ "nix-command" "flakes" "pipe-operators" ]; };
environment.systemPackages = with pkgs; [ curl iw tree lsof git wget vim
# surprisingly useful nqdc ] ++ [ # this is always wanted for flake management inputs.tack.packages.${system}.default ] ++ extraPackages;
system.stateVersion = stateVersion; }
home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit hostMeta; };
home-manager.sharedModules = extraHomeManagerModules;
home-manager.users = listToAttrs ( map (u: { name = u.name; value = import ../modules/home/${u.name} { inherit stateVersion; hostName = name; }; }) users ); }
({ config, ... }: sysConfig config) ] ++ extraNixosModules; };}