Dotfiles and macOS setup for a streamlined development environment.
- Shell Configuration (
.zshrc,.extra) - Zsh configuration with aliases, functions, and environment setup - Git Configuration (
.gitconfig,.gitignore) - Global git settings and ignore patterns - Editor Configuration (
.editorconfig,.vimrc) - Consistent coding styles across editors - macOS Preferences - Sensible defaults for Finder, Dock, Safari, and more
- Homebrew Packages - Essential command-line tools
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Follow the post-install instructions to add Homebrew to your PATH.
Download and install Ghostty.
For the best terminal experience with special characters:
# Clone and install
git clone https://github.com/powerline/fonts.git --depth=1
cd fonts
./install.sh
cd ..
rm -rf fontsThen set your terminal font to a Powerline font (e.g., "Meslo LG M for Powerline").
git clone https://github.com/jlaws/dotfiles.git ~/Workspace/dotfiles
cd ~/Workspace/dotfilesBefore running the setup script, update .gitconfig with your own name and email:
[user]
name = Your Name
email = your-email@example.com./setup.shOr skip confirmation prompts:
./setup.sh --forceThe setup script performs three main tasks:
Copies all dotfiles to your home directory using rsync, preserving any local changes not in the repo.
- GNU utilities:
coreutils,findutils,gnu-sed,moreutils - Updated tools:
vim,grep,openssh,screen,wget - Git tools:
git,git-lfs,gh - Shell utilities:
autojump,mermaid-cli - Language servers:
node,pyright,rust-analyzer
Sets hundreds of macOS preferences including:
- UI/UX: Faster animations, expanded save/print dialogs, disabled auto-correct
- Input: Tap to click, fast key repeat, natural scrolling disabled
- Finder: Show hidden files, path bar, status bar, list view default
- Dock: Auto-hide, no recent apps, fast animations
- Safari: Developer tools enabled, privacy settings, no auto-fill
- Security: Password required immediately after sleep
Some settings can't be automated and require manual setup:
- Security & Privacy → FileVault (enable disk encryption)
- Security & Privacy → Firewall (enable)
- Keyboard → Modifier Keys (Caps Lock → Escape, if desired)
- Ghostty: Primary terminal — config reference at
ghosty_config.txtin repo root - Xcode: Sign in with Apple ID, install additional components
| File | Purpose |
|---|---|
.zshrc |
Zsh configuration, loads Oh My Zsh and sources .extra |
.extra |
Aliases, functions, PATH, and environment variables |
.gitconfig |
Git configuration (aliases, colors, defaults) |
.gitignore |
Global gitignore patterns |
.editorconfig |
Editor settings (indent style, charset, etc.) |
.vimrc |
Vim configuration |
.hushlogin |
Suppress "Last login" message in terminal |
.gitattributes |
Git file handling attributes |
.wgetrc |
Wget configuration |
ghosty_config.txt |
Ghostty terminal configuration reference |
setup.sh |
Main setup script |
The .extra file is sourced by .zshrc. You can create a ~/.extra.local file for machine-specific settings that won't be committed:
# Example ~/.extra.local
export WORK_API_KEY="secret"
alias myproject="cd ~/work/myproject"Then add to your .zshrc:
[ -f ~/.extra.local ] && source ~/.extra.localTo pull the latest changes and re-sync:
cd ~/Workspace/dotfiles
./setup.shThe .claude/ directory contains an extensive knowledge base:
- 9 commands (thin wrappers to skills): audit, debug, diff-review, paper-analysis, pr-fix, skill-audit, team-design, team-investigate, team-review
- 124 skills across 16 categories: ai-ml, architecture, business, cloud, data, devops, documentation, frontend, languages, migration, research, security, testing, workflow
LSP Plugins (code intelligence — goToDefinition, findReferences, hover, diagnostics):
| Plugin | Language | Prerequisite |
|---|---|---|
pyright-lsp |
Python | brew install pyright (in setup.sh) |
typescript-lsp |
TS/JS | npm install -g typescript-language-server typescript (in setup.sh) |
swift-lsp |
Swift | Xcode (bundled) |
gopls-lsp |
Go | go install golang.org/x/tools/gopls@latest (in setup.sh) |
rust-analyzer-lsp |
Rust | brew install rust-analyzer (in setup.sh) |
Workflow Plugins:
| Plugin | Adds |
|---|---|
commit-commands |
/commit, /commit-push-pr, /clean_gone |
claude-md-management |
/revise-claude-md for CLAUDE.md maintenance |
Install after running setup.sh launch claude and run:
/plugin install pyright-lsp@claude-plugin-directory
/plugin install typescript-lsp@claude-plugin-directory
/plugin install swift-lsp@claude-plugin-directory
/plugin install rust-analyzer-lsp@claude-plugin-directory
/plugin install gopls-lsp@claude-plugin-directory
/plugin install commit-commands@claude-plugin-directory
/plugin install claude-md-management@claude-plugin-directory