# Personal machine darwin configuration # # This file contains nix-darwin settings specific to the personal machine. # It sets up system-level configuration and integrates with home-manager. { config, pkgs, lib, username, ... }: { # Import darwin modules imports = [ ../../modules/darwin/homebrew.nix ]; # Nix configuration nix = { settings = { # Enable flakes and new nix command experimental-features = ["nix-command" "flakes"]; # Avoid unwanted garbage collection when using nix-direnv keep-outputs = true; keep-derivations = true; }; }; # Allow unfree packages nixpkgs.config.allowUnfree = true; # Set the primary user for this machine (required for homebrew and other user-specific options) system.primaryUser = username; users.users.${username} = { name = username; home = "/Users/${username}"; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFaIAP/ZJ7+7jeR44e1yIJjfQAB6MN351LDKJAXVF62P" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILAzuPy7D/54GxMq9Zhz0CUjaDnEQ6RkQ/yqVYl7U55k" ]; }; # System-level programs programs = { # Enable zsh as it's the default macOS shell zsh.enable = true; }; # macOS system preferences will be configured in modules/darwin/system.nix # Homebrew configuration - enable with personal casks modules.homebrew = { enable = true; casks.enablePersonal = true; }; # Used for backwards compatibility, read the changelog before changing. # $ darwin-rebuild changelog system.stateVersion = 5; }