# Default nix-darwin host. Minimal macOS baseline; the user environment # (shell, git, editor) is carried by the shared ./lyrathorpe/home modules, # the same ones used by the Linux hosts. nixpkgs.hostPlatform is set by # mkDarwinHost in flake.nix. { pkgs, username, ... }: { programs.zsh.enable = true; # CLI tooling sourced from nixpkgs instead of Homebrew formulae. Pure library # dependencies are omitted; nix pulls them into closures automatically. environment.systemPackages = with pkgs; [ # Build & toolchain autoconf automake cmake coreutils gcc gettext gnumake pkgconf ruby zig # Version control & dev workflow pre-commit deno opentofu # Compression lz4 p7zip xz zstd # Crypto & networking gnupg gnutls openssl pinentry_mac unbound wget # Media ffmpeg svt-av1 yt-dlp # Graphics / Vulkan / SDL glslang moltenvk spirv-tools vulkan-loader vulkan-tools SDL2 sdl3 # Embedded esptool picotool # Misc utilities f3 gnused lua5_4 magic-wormhole ncurses sqlite ]; # Account that runs user-level activation and Homebrew. system.primaryUser = username; # nix-homebrew owns and installs the Homebrew prefix declaratively, so brew # itself no longer needs a manual bootstrap. enableRosetta permits x86_64 # formulae via Rosetta 2 on Apple Silicon. nix-homebrew = { enable = true; enableRosetta = true; user = username; }; # Declarative Homebrew for packages with no nixpkgs equivalent or that must be # the vendor build (GUI casks, Mac App Store apps). homebrew = { enable = true; onActivation = { autoUpdate = true; upgrade = true; # Lists below are authoritative: anything not declared is uninstalled. cleanup = "zap"; }; taps = [ ]; # Formulae kept on brew: vendor PWA host and version-pinned toolchains that # are simpler to track via brew than to match exactly in nixpkgs. brews = [ "firefoxpwa" "llvm@21" "lld@21" "python@3.14" ]; # GUI applications. macOS app bundles are managed as casks; nixpkgs darwin # GUI support is unreliable, so these stay on brew for continuity. casks = [ "alfred" "android-platform-tools" "angry-ip-scanner" "arduino-ide" "autodesk-fusion" "bambu-studio" "bitwarden" "citrix-workspace" "curseforge" "discord" "firefox" "freecad" "gcc-arm-embedded" "google-chrome" "istat-menus" "iterm2" "macfuse" "microsoft-teams" "nextcloud" "obs" "omnidisksweeper" "openscad@snapshot" "orcaslicer" "plex" "plexamp" "postman" "signal" "steam" "thunderbird" "virtualbox" "visual-studio-code" "vnc-viewer" "vscodium" "winbox" ]; masApps = { }; }; # Used for backwards compatibility; read `darwin-rebuild changelog` before changing. system.stateVersion = 5; }