Personal macOS dotfiles for a simple web-development setup: Fish, tmux, Git, Bat, Karabiner/Goku, VSCode, iTerm2, and a small set of CLI tools.
Dotfiles are linked with Dotbot. Packages and apps are declared in Brewfile.
-
Install Apple's command line tools:
xcode-select --install
-
Install Homebrew.
-
Install packages, apps, and fonts from the Brewfile:
brew bundle
-
Link dotfiles:
./install
-
Change the default shell to Fish if needed:
echo /opt/homebrew/bin/fish | sudo tee -a /etc/shells chsh -s /opt/homebrew/bin/fish
Generate an SSH key and add it to GitHub:
Git commit signing is enabled in home/gitconfig. On a new machine, install or
import the GPG key before relying on signed commits.
Fish universal variables are intentionally not tracked. Keep portable shell
settings in config/fish/config.fish or config/fish/conf.d/*.fish.
Oh My Fish is optional. If installed, config/fish/conf.d/omf.fish loads it.
Install tmux plugins after the dotfiles are linked:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmThen open tmux and press prefix + I to install plugins.
Karabiner Elements and Goku are installed by the Brewfile.
-
Open Karabiner Elements once and allow the required macOS permissions.
-
Make sure the active Karabiner profile is named
Default. -
Run:
goku
The repo keeps a global .tool-versions file for asdf. Install only the
language plugins you currently need, for example:
asdf plugin add nodejs
asdf installRust, Go, Python, and Elixir setup can stay project-specific unless needed globally.
vscode/anditerm2/are configuration backups, not currently linked by Dotbot.config/fish/fish_variablesand Fish migration files are ignored because they are local/generated state.- Run
brew bundle check --verboseto see which Brewfile entries are missing or outdated on the current Mac.