Personal macOS dotfiles, managed with rcm and Homebrew. Shell is fish, prompt is starship, history is atuin, and runtimes are managed with mise.
On a fresh machine:
git clone https://github.com/blackjid/dotfiles ~/.dotfiles
cd ~/.dotfiles
./script/setupscript/setup will:
- Install Homebrew (if missing).
- Install
rcmand symlink every dotfile into$HOME(seercrc). - Install everything in the
Brewfile(brew bundle). - Add fish to
/etc/shellsand set it as the default shell. - Install fisher and the fish
plugins listed in
config/fish/fish_plugins.
SSH keys are served by the 1Password SSH agent — private keys never touch
disk. Enable it once in the 1Password app: Settings > Developer > "Use the
SSH agent", and make sure each key is stored as an SSH Key item (not a
document). ssh/config points IdentityAgent at the agent socket.
Pull remaining secrets from 1Password (requires the op CLI, installed via the
Brewfile):
./script/extract-onepassword-secretsApply the macOS system defaults (review before running — it changes a lot):
./macos| Path | Symlinked to | Purpose |
|---|---|---|
config/fish/ |
~/.config/fish/ |
fish shell config, aliases, abbreviations, functions |
config/nvim/ |
~/.config/nvim/ |
neovim entrypoint (sources ~/.vimrc) |
config/starship.toml |
~/.config/starship.toml |
prompt |
config/atuin/ |
~/.config/atuin/ |
shell history + secret filtering |
config/karabiner/ |
~/.config/karabiner/ |
keyboard remapping |
vimrc, vimrc.bundles |
~/.vimrc, ~/.vimrc.bundles |
vim/neovim config (vim-plug) |
gitconfig, gitignore, gitmessage |
~/.git* |
git config + global ignore + commit template |
ssh/ |
~/.ssh/ |
SSH client config + public keys |
Brewfile |
— | Homebrew packages, casks, and Mac App Store apps |
macos |
~/.macos |
macOS system defaults script |
script/ |
— | bootstrap and helper scripts |
After editing files, re-link with rcup (run from anywhere). Add new Homebrew
packages to the Brewfile and run brew bundle.