{ pkgs, lib, ... }: { imports = [ ./overlay.nix ]; system.stateVersion = 5; users.users.emile = { name = "emile"; home = "/Users/emile"; }; users.users.hydra = { name = "hydra"; home = "/Users/hydra"; }; # macos sonoma claimed 300, 301, 302, 303 and 304 # users.groups."nixbld".name = "nixbld"; # users.users."_nixbld1" = { # name = "_nixbld1"; # }; # users.users."_nixbld1".uid = 305; # users.users."_nixbld2".uid = 306; # users.users."_nixbld3".uid = 307; # users.users."_nixbld4".uid = 308; # users.users."_nixbld5".uid = 309; nix = { useDaemon = true; # package = pkgs.nixFlakes; extraOptions = '' builders-use-substitutes = true auto-optimise-store = true '' + lib.optionalString (pkgs.system == "aarch64-darwin") '' extra-platforms = x86_64-darwin aarch64-darwin ''; settings = { trusted-users = [ "root" "hydra" "emile" ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" # "nix-cache.emile.space:3xzJknXMsR/EL3SBTu6V6oCOkjxe6MgJm0nOrElW33A=" ]; substituters = [ # nix-cache mirror for when in china # status: https://mirror.sjtu.edu.cn/ # "https://mirror.sjtu.edu.cn/nix-channels/store" "https://cache.nixos.org" "https://nix-community.cachix.org" "https://cache.garnix.io" # "https://nix-cache.emile.space" # status: https://mirrors.ustc.edu.cn/status/ # "https://mirrors.ustc.edu.cn/nix-channels/store" ]; experimental-features = [ "nix-command" "flakes" ]; # don't use the globally defined flakes, as pulling from github for each shell invocation # is slow flake-registry = ""; }; distributedBuilds = true; buildMachines = [ # { # hostName = "corrino.emile.space"; # system = "x86_64-linux"; # maxJobs = 16; # speedFactor = 2; # # Feature | Derivations requiring it # # ----------------|----------------------------------------------------- # # kvm | Everything which builds inside a vm, like NixOS tests # # nixos-test | Machine can run NixOS tests # # big-parallel | kernel config, libreoffice, evolution, llvm and chromium. # # benchmark | Machine can generate metrics (Means the builds usually # # | takes the same amount of time) # # cat /etc/nix/machines # # root@corrino x86_64-linux /home/nix/.ssh/id_ed25519 8 1 kvm,benchmark # supportedFeatures = [ # "nixos-test" # "benchmark" # "big-parallel" # "kvm" # ]; # mandatoryFeatures = [ ]; # } ]; }; nixpkgs = { config.allowUnfree = true; }; services.nix-daemon.enable = true; # <3 security.pam.enableSudoTouchIdAuth = true; environment = { systemPackages = [ ]; # set via home-manager shells = with pkgs; [ bashInteractive zsh ]; }; }