nix/hosts/darwin/system-default.nix
2025-09-09 22:00:05 +02:00

55 lines
1.9 KiB
Nix

{ config, pkgs, nix-homebrew, ... }:
{
imports = [
../../modules/homebrew.nix
../../modules/keyboard.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 /
'';
}