Shared shell and git config for the four-box fleet: m5pro and m4max (macOS), vinelab and fedora (Linux). All zsh.
install.sh symlinks everything into $HOME (idempotent; a real file at a target is backed up to <name>.pre-dotfiles).
git clone https://github.com/jakesciotto/dotfiles ~/github/dotfiles
~/github/dotfiles/install.sh
.zshrc-- shared core: fleet identity + prompt, aliases, functions. Sources the OS layer, then an optional host layer.os/darwin.zsh,os/linux.zsh-- OS-specific: brew and g-prefixed coreutils vs native GNU tools.hosts/<box>.zsh-- optional per-box one-offs, sourced last. Intentional divergence goes here, tracked, instead of hand-edits on the box..dir_colors-- terminal colorization rules (256-color), shared by bothgdircolors(mac) anddircolors(linux)..gitconfig-- identity + per-repo PostHog includes. Personal (gmail) is the default on every box; work dirs override viaincludeIf..gitconfig-posthog-- work identity include for PostHog repo dirs..gitconfig-signing-- SSH commit signing; loaded only on the Macs viaincludeIf "gitdir:/Users/", since only they hold the key. Keepscommit.gpgsign=truefrom breaking commits on the Linux boxes.~/.gitconfig-local-- machine-local include, never tracked: credential helpers (gh auth git-credentialpaths differ per box) and any box-specific overrides..vimrc-- yanked a good .vimrc from online.hammerspoon/init.lua-- mac only; bindsCmd+Shift+Vto clean-paste (strips leading whitespace from clipboard before pasting)archive/-- not deployed, historical reference
Each box shows its fleet name in the prompt, in its own color: m5pro 212, m4max 39, vinelab 120, fedora 196. The name comes from host.name in ~/.claude/settings.local.json (seeded by claude-config's bootstrap.sh), because hostnames are DHCP-unreliable on the Macs. Fallback is $HOST.
- Work repos are matched by
includeIf "gitdir:..."blocks in.gitconfig(posthog, posthog.com, gtm-toolkit, runbooks). Add one block per new work repo dir. - Verify:
git -C ~/github/posthog config user.email->jake.s@posthog.com; anywhere else -> gmail. - GitHub squash-merges attribute commits by the account's verified email, independent of this local config. Keep
jake.s@posthog.comverified at github.com/settings/emails.
- Install:
brew install --cask hammerspoon - Launch once. Grant Accessibility permission: System Settings → Privacy & Security → Accessibility → enable Hammerspoon.
install.shlinks the config on macOS.- Menubar icon → Reload Config. "Config loaded" toast confirms.
- Use
Cmd+Shift+Vto paste clipboard with leading whitespace stripped.Cmd+Vuntouched.