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
S
Description
No description provided
Readme
1 MiB
0 Stars 1 Watchers 0 Forks
Languages
Nix 79.5%
Shell 17.6%
Emacs Lisp 2.9%