Skip to content
scottpetersonPublic

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

dotfiles

Shell, git, and terminal configuration for macOS, plus a Brewfile of installed packages.

Files

dotfiles.list names every tracked file. Each path is relative to both the repo root and $HOME, so .config/ghostty/config maps to ~/.config/ghostty/config. To track another file, add its path to the list and run ./dotfiles.sh pull.

Commands

Command What it does
./dotfiles.sh status Lists each tracked file as same, differs, or missing on one side.
./dotfiles.sh diff Shows a unified diff from the repo copy to the home copy.
./dotfiles.sh pull Copies the home files into the repo and regenerates Brewfile from installed packages.
./dotfiles.sh install Copies the repo files into $HOME. Before it replaces a file, it saves the old copy to ~/.dotfiles_backup/<timestamp>/.

To save changes from this machine, run ./dotfiles.sh pull, review git diff, add an entry to CHANGELOG.md, then commit.

Changelog

CHANGELOG.md records each change to the shell, terminal, and git setup, what you might notice because of it, and how to undo it. If something behaves unexpectedly, check it first. pull reminds you to add an entry when tracked files changed and the changelog didn't.

New machine

git clone https://github.com/scottpeterson/dotfiles.git ~/projects/dotfiles
~/projects/dotfiles/all_brew.bash

all_brew.bash installs Homebrew if needed, installs the Brewfile, upgrades casks, and runs ./dotfiles.sh install. The login shell stays macOS's /bin/zsh.

The shell config expects oh-my-zsh with the zsh-autosuggestions plugin. Install those before you open a new shell. Starship draws the prompt; the Brewfile installs it, and .config/starship.toml configures it. The prompt uses Powerline symbols, so the terminal font must be a Nerd Font (iTerm2 and Ghostty both use MesloLGS Nerd Font).

Machine-specific settings

Settings that should stay off GitHub go in two untracked files on each machine:

  • ~/.zshrc.local: sourced at the end of .zshrc. Holds private paths and per-project hooks.
  • ~/.gitconfig.local: included at the end of .gitconfig. Holds user.email.

On a new machine, create ~/.gitconfig.local with your email before you commit:

git config --file ~/.gitconfig.local user.email "you@example.com"

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages