Layout
.
├── dock # MacOS dock configuration
├── casks.nix # List of homebrew casks
├── default.nix # Defines module, system-level config
├── files.nix # Non-Nix, static configuration files (now immutable!)
├── home-manager.nix # Defines user programs
├── packages.nix # List of packages to install for MacOS
Python
python3.13 is available alongside the default Python environment, without
changing python or python3 or their configured packages. When the default
Python already is 3.13, its existing command is used instead of an extra launcher.
Use python3.13 -m venv .venv to create a Python 3.13 virtual environment.
Dock activation
Dock setup runs only when olaf is the active console user. Each dockutil
command runs as that user in their GUI session, avoiding the root-mode
defaults export pipe deadlock in dockutil 3.1.3. Commands have a 30-second
timeout (with a forced stop after another 5 seconds) and report failures.
A failed Dock listing aborts activation before resetting any entries.
The Dock is restarted through its user launchd service.
If setup is skipped because no matching desktop session is active, run
sudo darwin-rebuild switch --flake .#aarch64-darwin again after logging in
(use x86_64-darwin on Intel).