{ pkgs, config, self, ... }: { environment.systemPackages = with pkgs; [ home-manager mkalias ]; homebrew = { enable = true; casks = [ "ghostty" "zen-browser" "nikitabobko/tap/aerospace" ]; brews = [ "mas" ]; masApps = { }; onActivation.cleanup = "zap"; onActivation.autoUpdate = true; onActivation.upgrade = true; }; system = { configurationRevision = self.rev or self.dirtyRev or null; defaults = { dock = { autohide = true; persistent-apps = [ ]; persistent-others = [ ]; show-recents = false; static-only = true; }; finder = { _FXShowPosixPathInTitle = true; _FXSortFoldersFirst = true; AppleShowAllFiles = true; AppleShowAllExtensions = true; ShowPathbar = true; ShowStatusBar = true; FXPreferredViewStyle = "clmv"; }; loginwindow.GuestEnabled = false; NSGlobalDomain = { AppleICUForce24HourTime = true; AppleInterfaceStyle = "Dark"; KeyRepeat = 2; }; trackpad = { Clicking = true; TrackpadThreeFingerDrag = true; }; controlcenter = { BatteryShowPercentage = true; }; hitoolbox.AppleFnUsageType = "Show Emoji & Symbols"; }; keyboard = { enableKeyMapping = true; nonUS.remapTilde = true; remapCapsLockToEscape = true; swapLeftCtrlAndFn = false; }; activationScripts.applications.text = let env = pkgs.buildEnv { name = "system-applications"; paths = config.environment.systemPackages; pathsToLink = "/Applications"; }; in pkgs.lib.mkForce '' # Set up applications echo "setting up /Applications..." >&2 rm -rf /Applications/Nix\ Apps mkdir -p /Applications/Nix\ Apps find ${env}/Applications -maxdepth 1 -type l -exec readlink '{}' + | while read -r src; do app_name=$(basename "$src") echo "copying $src" >&2 ${pkgs.mkalias}/bin/mkalias "$src" "/Applications/Nix Apps/$app_name" done ''; }; }