{ pkgs, username, ... }: { # ── Primary user (required by nix-darwin) ────────── system.primaryUser = username; # ── Shell ────────────────────────────────────────── programs.fish.enable = true; # ── User ─────────────────────────────────────────── users.users.${username} = { home = "/Users/${username}"; shell = pkgs.fish; }; # ── Fonts ────────────────────────────────────────── fonts.packages = with pkgs; [ maple-mono.NF-CN-unhinted nerd-fonts.symbols-only ]; # ── macOS system preferences ─────────────────────── system.defaults = { dock = { autohide = true; show-recents = false; mru-spaces = false; }; finder = { AppleShowAllExtensions = true; FXPreferredViewStyle = "clmv"; }; NSGlobalDomain = { AppleShowAllExtensions = true; InitialKeyRepeat = 15; KeyRepeat = 2; }; }; # ── Homebrew ─────────────────────────────────────── homebrew = { enable = true; taps = [ "goooler/repo" ]; # CLI tools not in nixpkgs or needing brew services brews = [ "ffmpeg" "mas" "mole" "pandoc" "tailscale" ]; # GUI apps casks = [ "1password" "brave-browser" "cherry-studio" "dbeaver-community" "discord" "feishu" "goooler/repo/fl-clash" "ghostty" "keka" "logitech-g-hub" "mos" "orbstack" "qq" "raycast" "spotify" "telegram-desktop" "termius" "visual-studio-code" "wechat" "winbox" ]; # Mac App Store masApps = { "Microsoft Word" = 462054704; "Microsoft Excel" = 462058435; "Microsoft PowerPoint" = 462062816; "Windows App" = 1295203466; "Xnip" = 1221250572; }; onActivation = { autoUpdate = true; cleanup = "zap"; # remove anything not declared above }; }; }