A macOS nix-darwin config
This repository now focuses on macOS systems managed with nix-darwin.
Started with a configuration generated from this nixos config templateInstalled nix with --nix-build-group-id 30000
Initialy created 'with secrets' but stripped out the git/agenix in favor of sops
Refactored the configuration to remove nixos but keep the shared modules and Darwin host setup, with no NixOS trees or Linux app targets.
Emacs and binary caches
The Emacs overlay is a flake input pinned in flake.lock. Keep the lock file
in version control so builds use the same input revisions. Update only the
overlay with:
nix flake update emacs-overlay
Emacs uses the unmodified release package from each architecture's nixpkgs,
rather than emacs-git, to reuse builds from https://cache.nixos.org.
The overlay still supplies emacsWithPackagesFromUsePackage and the Lisp
package definitions. The installed Emacs and launchd daemon share the same
configured package; client launchers use the matching release Emacs client.
Both the NixOS and nix-community caches are configured in the Darwin host.
Cache availability depends on the locked revisions and architecture. Check the
base Emacs build without compiling (substitute x86_64-darwin for Intel):
nix build --dry-run '.#darwinConfigurations.aarch64-darwin.pkgs.emacs'
The custom Lisp package collection and wrapper may still need local builds.
vsketch
The local overlay packages vsketch 1.2.0 and its vpype dependencies from pinned
sources. Upstream supports Python 3.11 through 3.13, but not Python 3.14.
On Apple Silicon, the existing Python 3.14 environment remains unchanged;
use python3.13 to import vsketch. On Intel, vsketch is included in the
existing Python 3.13 environment and can also be imported with python3.
Both systems provide the vsk and vpype commands after applying the
configuration.
Add more Python 3.13 libraries to vsketchPythonPackages in
overlays/30-vsketch.nix. On Apple Silicon, add
any corresponding command-line executables to the list in vsketch-python if
they should also be available on PATH.
python3.13 -c 'import vsketch; print(vsketch.__version__)'
vsk --help