{ config, pkgs, lib, ... }: { # Nix configuration ------------------------------------------------------------------------------ nix.binaryCaches = [ "https://cache.nixos.org/" "https://hydra.iohk.io" "https://nix-community.cachix.org" ]; nix.binaryCachePublicKeys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; nix.trustedUsers = [ "@admin" ]; users.nix.configureBuildUsers = true; nix.buildCores = 1; nix.maxJobs = 8; # Enable experimental nix command and flakes # nix.package = pkgs.nixUnstable; nix.extraOptions = '' auto-optimise-store = true experimental-features = nix-command flakes '' + lib.optionalString (pkgs.system == "aarch64-darwin") '' extra-platforms = x86_64-darwin aarch64-darwin ''; # Auto upgrade nix package and the daemon service. services.nix-daemon.enable = true; # Make Fish the default shell programs.fish.enable = true; programs.fish.useBabelfish = true; programs.fish.babelfishPackage = pkgs.babelfish; # Needed to address bug where $PATH is not properly set for fish: # https://github.com/LnL7/nix-darwin/issues/122 programs.fish.shellInit = '' for p in (string split : ${config.environment.systemPath}) if not contains $p $fish_user_paths set -g fish_user_paths $fish_user_paths $p end end ''; environment.variables.SHELL = "${pkgs.fish}/bin/fish"; environment.loginShell = "${pkgs.fish}/bin/fish"; # Install and setup ZSH to work with nix(-darwin) as well programs.zsh.enable = true; # Used for backwards compatibility, please read the changelog before changing. # $ darwin-rebuild changelog system.stateVersion = 4; }