A collection of personal dotfiles for macOS. Includes shell configuration (zsh), editor setup (Vim), custom themes, utility scripts, and Claude Desktop configuration.
- macOS system
- Command line tools for Xcode
- Git (for cloning this repository)
-
Clone this repository to
~/.dotfiles
:git clone [repository-url] ~/.dotfiles
-
Run the installer script:
cd ~/.dotfiles ./installer.sh
The installer will:
- Install required tools (Homebrew, Python via pyenv, Node.js via nvm, Rust, etc.)
- Create necessary symlinks
- Set up Oh My Zsh with custom themes
This setup uses zsh with Oh My Zsh and includes:
- Custom themes: a full theme (
joshua.zsh-theme
) and a minimal theme (joshua-minimal.zsh-theme
) - Common aliases and functions
- Integration with pyenv, nvm, and cargo
You can switch between themes using the included theme-switch
script:
# Switch to minimal theme (just red $ prompt)
theme-switch minimal
# Switch to full theme with git status, python env info, etc.
theme-switch full
# After switching, reload your shell:
source ~/.zshrc
This setup uses vim-plug as the package manager.
Installed with the following command:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://github.com/raw/junegunn/vim-plug/master/plug.vim
Run :PlugInstall
in Vim afterwards to install the packages.
This setup uses a template-based approach for the Claude Desktop configuration to securely manage API credentials.
-
Create a
.env
file in the~/.dotfiles/claude/
directory with your credentials:# ~/.dotfiles/claude/.env BLUESKY_IDENTIFIER=your_bluesky_username BLUESKY_APP_PASSWORD=your_bluesky_app_password # Add any other environment variables needed for templates
-
Run the hydration script to generate the final configuration:
cd ~/.dotfiles/claude ./hydrate.py
-
The script will automatically populate the template with your environment variables and generate the final configuration file at
~/Library/Application Support/Claude/claude_desktop_config.json
This approach allows you to keep sensitive credentials out of your git repository while still tracking the configuration template.
The script requires:
- Python 3.10+
- Required packages: python-dotenv, jinja2 (installed automatically with uv)
The bin
directory contains utility scripts:
rwbench
: Disk read/write benchmark utility- TODO: Add
--help
documentation
- TODO: Add
theme-switch
: Theme switcher for zsh- TODO: Add
--help
documentation
- TODO: Add