Skip to content

reidlevesque/dotfiles

Repository files navigation

Reid's dotfiles

A minimal, carefully maintained collection of dotfiles for macOS. My philosophy is to delete unnecessary configurations as often as possible to keep things simple and maintainable.

Overview

These dotfiles help configure:

  • zsh with plugins (via oh-my-zsh)
  • git configuration
  • Homebrew packages and applications
  • macOS preferences
  • vim, SSH, Docker, and other development tools
  • iTerm2 and Cursor editor settings
  • direnv for environment management
  • 1Password SSH agent integration for SSH and git commit signing

Prerequisites

  • Homebrew: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Oh My Zsh: sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • Oh My Zsh plugins:
    • git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    • git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Installation

git clone [email protected]:reidlevesque/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./bootstrap.sh

The installation process:

  1. Creates symlinks for all *.symlink files into your home directory
  2. Installs Homebrew packages defined in the Brewfile
  3. Runs topic-specific installers for additional setup

Structure

The repository follows a modular approach:

  • bootstrap.sh: Main entry point that runs install.sh with caffeinate to prevent sleep
  • install.sh: Creates symlinks and runs all topic-specific installers
  • Brewfile: Defines all Homebrew packages, casks, and fonts to install
  • topic/: Directories for each tool or area of configuration
    • topic/*.zsh: Files loaded into your zsh environment
    • topic/path.zsh: Loaded first to set up $PATH
    • topic/completion.zsh: Loaded last to set up autocompletion
    • topic/*.symlink: Files that get symlinked to your $HOME (e.g., zsh/zshrc.symlink~/.zshrc)
    • topic/install.sh: Topic-specific installation scripts
  • bin/: Executables that are added to your $PATH

1Password / Git Integration

  • SSH agent configuration uses the 1Password SSH agent for secure key management
  • Git commit signing is configured to use 1Password's SSH signing capabilities
  • Multiple git identities can be managed with the git-assume function

For detailed documentation on the Git identity management system, see git/README.md.

Customizing

To add your own configurations:

  1. Create a new directory for your topic
  2. Add .zsh files for zsh configuration
  3. Add .symlink files that should be linked to your home directory
  4. Create an install.sh script if additional setup is needed

Updating

cd ~/.dotfiles
git pull
./bootstrap.sh

Thanks to…

TODO

  • Add install.sh to sleepwatcher
  • Add install.sh to iterm
  • Add install.sh to KeyBindings
  • Review lox's git setup
  • Add hermit folder from lox's dotfiles

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published