Philippe Serhal's dotfiles #
Personal dotfiles managed with GNU Stow.
Prerequisites #
Homebrew Packages #
brew install bash bash-completion@2 ca-certificates coderabbit coreutils diffnav difftastic ffmpeg \
font-inconsolata-nerd-font gh git glib gnupg gnutls htop hub jq mise pinentry-mac ripgrep \
shellcheck starship stow the_silver_searcher tree-sitter tree-sitter-cli wget yq zizmor zstd
Change Default Shell to Bash #
macOS ships an ancient Bash 3.2 (last GPLv2 release) as /bin/bash. Use Homebrew's modern Bash instead:
sudo sh -c 'echo /opt/homebrew/bin/bash >> /etc/shells'
chsh -s /opt/homebrew/bin/bash
Restart your terminal for the change to take effect.
Installation #
From within this repo's directory, run the following command to create the symlinks:
stow -d stow-packages -t ~ ag bash claude ghostty git gnupg iterm2 mise nvim ssh tmux workmux
Then, iTerm and iStat Menus require additional configuration:
for plist in *.plist
do
defaults write $plist PrefsCustomFolder -string "$(pwd)"
defaults write $plist LoadPrefsFromCustomFolder -bool true
done
Note: After installation, restart iTerm2 completely. If the Inconsolata Nerd Font doesn't appear correctly, go to iTerm2 → Settings → Profiles → Text and manually re-select "InconsolataNF-Regular" as the font to refresh the font cache.
To stow individual packages, run:
stow -d stow-packages -t ~ <package_name>
For example: stow -d stow-packages -t ~ git
Tool Versions #
I use mise to manage tool versions.
-
Trust the configuration:
mise trust ~/.config/mise/config.toml -
Install the tools:
mise install
Post-install #
A few things aren't covered by stow, mise, or Homebrew:
-
Start the container runtime used by the workmux sandbox.
colima,lima, anddocker-cliare installed by mise, but the VM isn't started automatically:colima start --vm-type vz --cpus 4 --memory 4 -
Install agent status tracking for whichever agents you use:
workmux setup -
OpenCode + workmux: released workmux doesn't support OpenCode v2 yet (raine/workmux#290) — the plugin
workmux setupinstalls is a v1 plugin that fails to load. Until PR #306 ships, install the v2 plugin manually: copyindex.ts,tui.ts, andstatus.tsfrom the PR'sresources/opencode/v2/workmux-status/into~/.config/opencode/plugins/workmux-status/, and delete any~/.config/opencode/plugins/workmux-status.ts. After #306 ships,workmux setuphandles this automatically. Skip this step on machines that only run Claude Code.
- Shell 54%
- Lua 46%