{ config, pkgs, nix-homebrew, ... }: { imports = [ ../../modules/homebrew.nix nix-homebrew.darwinModules.nix-homebrew ]; # Nix configuration nix.settings.experimental-features = "nix-command flakes"; nix.settings.substituters = [ "https://cache.nixos.org/" "https://nix-community.cachix.org" "https://devenv.cachix.org" ]; nix.settings.trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" ]; # System configuration system.stateVersion = 6; nixpkgs.hostPlatform = "aarch64-darwin"; programs.zsh.enable = true; # Set primary user for system preferences system.primaryUser = "yanlin"; # Security configuration - passwordless sudo for yanlin security.sudo.extraConfig = '' yanlin ALL=(ALL) NOPASSWD: ALL ''; # Menu bar spacing configuration using activation scripts # Uses sudo to run as user since activation now runs as root # NSStatusItemSpacing controls horizontal spacing between menu bar items # NSStatusItemSelectionPadding controls padding inside selection overlay system.activationScripts.extraActivation.text = '' echo "Setting menu bar spacing preferences..." sudo -u yanlin defaults -currentHost write -globalDomain NSStatusItemSpacing -int 10 sudo -u yanlin defaults -currentHost write -globalDomain NSStatusItemSelectionPadding -int 5 echo "Disabling Spotlight indexing..." # Disable Spotlight indexing for all volumes # WARNING: This will break Mail.app search, Time Machine, and other features # To re-enable: sudo mdutil -a -i on sudo mdutil -a -i off # Erase existing Spotlight index to free up disk space echo "Erasing existing Spotlight index..." sudo mdutil -E / ''; # Key remapping using hidutil via launchd agent # This swaps Control and Caps Lock keys bidirectionally launchd.user.agents.remap-keys = { serviceConfig = { ProgramArguments = [ "/usr/bin/hidutil" "property" "--set" ''{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x7000000E0},{"HIDKeyboardModifierMappingSrc":0x7000000E0,"HIDKeyboardModifierMappingDst":0xFF00000003}]}'' ]; RunAtLoad = true; KeepAlive = false; Label = "org.nixos.remap-keys"; StandardErrorPath = "/tmp/remap-keys.err"; StandardOutPath = "/tmp/remap-keys.out"; }; }; }