This repo is a little quirky at the moment; I'm half way between a Nix-style setup and a stow-based one. Eventually this will be fully Nix-based but for now we do some non-reproducible stuff with bootstrap.
gitnix- Nix experimental features enabled:
echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.confnix profile add github:collinmurch/dotfiles#pkg-set
# expect stow conflicts on first run
nix run github:collinmurch/dotfiles#bootstrap Both env.nu and .zshenv load ~/.env on startup if it exists. Use standard KEY=VALUE (dotenv) format with double-quoted values. This file is gitignored so it stays local to each machine.
EXAMPLE_VARIABLE="some-value"
ANOTHER_VARIABLE="another-value"
If either of these files are present, they will be sourced by the respective shell:
- Zsh:
~/.zprofile - Nushell:
$nu.default-config-dir/local.nu(overlay)
Additional sandbox permissions for Codex and Claude Code:
- Codex:
~/.codex/rules/*.rules(any name butbase.rules)~/.codex/config.toml(config.base.tomlis merged in at initialization)
- Claude Code:
~/.claude/settings.json(~/.claude/settings.base.jsonis merged in at initialization)
This setup includes encrypted TX-02 (Berkely Mono) fonts that are optionally decrypted during bootstrap.sh using my Bitwarden SSH key.
JetBrains Mono is installed and is a fallback font for all configs if TX-02 isn't found.
A list of defaults & functionality explanations I prefer can be set with /bin/zsh config_macos.sh, which I wouldn't recommend just running. I'll probably migrate this to nix-darwin at some point.
- Export settings under Advanced from previous machine
- Import them under the same tab on a new machine
- Check to make sure scripts are loaded from
~/Developer/scripts