Skip to content
btavPublic

About

@btav dotfiles

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

dotfiles

btav macOS setup managed with GNU Stow.

It installs development tools and apps, then links configuration for zsh, Vim, Git, Ghostty, and Zed into the home directory.

The package lists are the sources of truth:

Install

git clone --recurse-submodules https://github.com/btav/dotfiles.git
cd dotfiles
./install.sh

Use ./install.sh --dry-run to preview the setup. The installer:

  • installs Homebrew and the dependencies in Brewfile
  • installs nvm, a stable Rust toolchain, and Python 3.13 through uv
  • syncs submodules and installs global npm packages and shared skills
  • backs up conflicting config files before stowing this repository's config

Update

./update.sh

The update script refreshes Homebrew metadata, installs or upgrades dependencies from Brewfile, backs up conflicting managed files, re-links the managed Stow packages so newly added config files are applied, updates the global npm packages (pnpm remains on major version 11), and updates installed Rust toolchains.

The npm packages install under your default nvm Node. Codex, Claude Code, OpenCode, and Pi run through launchers in ~/.local/share/ai-tools/bin, so they stay on that Node after nvm use; pnpm follows the active Node. The launchers point at a specific Node version, so run ./update.sh again after you change the nvm default.

It does not update nvm or installed Python versions. Pass --skills to also update the skills submodule to its latest:

./update.sh --skills

The submodule bump then shows as a pending change in this repository, ready to commit.

Customize

Machine-specific shell configuration belongs in:

  • ~/.zshenv.local for environment variables, PATH entries, and secrets
  • ~/.zshrc.local for interactive aliases and prompt changes

The installer creates these files from the included examples when they do not already exist and never overwrites them.

After adding files to a Stow package, re-link it from the repository root:

stow --no-folding --restow zsh

What lives where

  • ~/.local/share/ai-tools/bin — launchers pinning AI tools to the default nvm Node (written by scripts/install-npm-globals.sh)
  • ~/.dotfiles-backup-<timestamp> — conflicting config backups made by stow-sync; they accumulate and are never cleaned automatically
  • ~/.zshenv.local / ~/.zshrc.local — machine-specific overrides, never overwritten

Editors

EDITOR and VISUAL default to vim; override them in ~/.zshenv.local.

Use e to open the current directory in Zed (zed .).

About

@btav dotfiles

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages