Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ If you find a bug, please open a GitHub Issue using the bug report template.
Running the switch builds:

- System settings (dark mode, key repeat, dock, Finder, trackpad)
- Homebrew apps (casks and CLI tools)
- Homebrew apps and CLI tools (AI agents, remote access, terminal, editor, local dev)
- Nix user packages (ripgrep, fd, fzf, jq, lazygit, Neovim, Hack Nerd Font)
- Shell (zsh, aliases, starship prompt)
- Editor (Neovim config)
Expand Down Expand Up @@ -108,6 +108,8 @@ programs.git = {
That means every time you switch, Homebrew removes any package or cask on your machine that isn't listed in the `brews` and `casks` arrays in `configuration.nix`.
If you already have Homebrew stuff installed that isn't in that list, the first switch will uninstall it.
Read through `brews` and `casks` before you run `bootstrap.sh` or `rebuild.sh` for the first time, and add anything you want to keep.
This profile currently preserves the high-confidence tools found in active use on mini's machine: Cursor, Claude/Claude Code, Codex, opencode, Antigravity, Tailscale, NoMachine, OrbStack, Obsidian, RustDesk, 1Password, Android platform tools, GitHub CLI, just, uv, tmux, Node, Coreutils, and ffmpeg-full.
Anything else installed manually or through Homebrew should be treated as at risk until you either add it here or intentionally let `zap` remove it.

**About `herdr`:** it's in the `brews` list.
It's a real public Homebrew formula (`brew info herdr` finds it in homebrew-core, no tap needed), so it will install fine.
Expand Down
27 changes: 25 additions & 2 deletions configuration.nix
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,38 @@
};
homebrew = {
enable = true;
onActivation.cleanup = "zap"; # remove anything not listed here
# High impact: `zap` removes Homebrew items not listed below on switch.
# Review brews/casks before bootstrap or rebuild on an existing machine.
onActivation.cleanup = "zap";
onActivation.autoUpdate = true;
onActivation.extraFlags = [ "--force" ];
brews = [
"coreutils"
"ffmpeg-full"
"gh"
"herdr"
"just"
"node"
"opencode"
"tailscale"
"tmux"
"uv"
];
casks = [
"wezterm"
"1password"
"1password-cli"
"android-platform-tools"
"antigravity"
"claude"
"claude-code"
"codex"
"cursor"
"nomachine"
"obsidian"
"orbstack"
"rustdesk"
"tailscale-app"
"wezterm"
];
};
}
2 changes: 1 addition & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
let
# The one username line to change if this isn't your machine.
# bootstrap.sh offers to rewrite this for you if your macOS username differs.
user = "kunchen";
user = "mini";
in
{
darwinConfigurations."mac" = nix-darwin.lib.darwinSystem {
Expand Down