dotfiles
Personal shell configuration and utility scripts
Setup
Place this repository in ~/dotfiles and symlink the main configuration:
ln -s ~/dotfiles/zshrc.sh ~/.zshrc
ln -s ~/dotfiles/ghostty/config ~/.config/ghostty/config
Configuration Files
Core Shell Configuration
zshrc.sh- Main zsh configuration with aliases, functions, and shell settingszprofile.sh- Sources local zprofile configuration for startup scripts
Platform-Specific
macbook.sh- macOS-specific settings including key remapping (Caps Lock → Escape)
Utility Modules
docker.sh- Docker and docker-compose shortcuts and utilitiesvirtualenv.sh- Python virtual environment managementworktree.sh- Git worktree utilities for managing multiple branches
Terminal
ghostty/config- Ghostty terminal configuration (theme, palette, font size)
Claude Code Skills
skills/- Personal Claude Code skills. Run./skills/install.shto symlink each skill into~/.claude/skills/.
Key Features
Aliases & Shortcuts
ll,la,lt,lla- Enhanced ls variationscap&check- Capture and check exit codeslc- Count lines in Go/templ filesto_gif- Convert videos to GIF format
Git Utilities
gcommit [message]- Add all and commit (auto-timestamps if no message)gpush/gpull [branch]- Push/pull current or specified branchgprune- Delete merged branches (use--dryfor preview)grevert- Hard reset to previous commitgrollback- Revert last commitclone <user/repo>- Clone from GitHubgit_sign_init <key>- Setup SSH commit signing
Docker Shortcuts
dssh <container>- SSH into containerdexec <container> <cmd>- Execute command in containerdls,dstart,dstop,drm- Container managementdlog <container>- Follow container logsdcup,dcstop,dcrm,dclog- Docker Compose equivalents
Python Virtual Environments
venv- Create/activate Python 2 virtualenvvenv3- Create/activate Python 3 virtualenvvend- Deactivate and restore PYTHONPATH
Git Worktree Management
wt- Unified worktree command (or use individual commands below)wtc <branch>- Create/switch to worktree (symlinks gitignored files automatically)wtd [-f] [branch|path]- Delete worktree (defaults to current,-fto force unmerged)wtl [-v|-vv]- List worktrees (-vfor details,-vvto show symlinks)wtp [-n] [-d] [-f]- Prune merged and safe detached worktreescc [branch]- Create worktree and launch Claude Code in it
Symlink sync: When creating a worktree, gitignored files (e.g., .env) are symlinked from the main worktree. Build artifacts like node_modules, vendor, dist, etc. are excluded by default.
Custom exclusions: Create .wtignore in repo root with patterns to exclude from symlinking:
# One pattern per line, supports globs
*.log
my-large-cache/
Shell Enhancement
- Vi mode with custom cursor indicators
- Enhanced history search with ↑/↓ arrows
- Colored prompts showing user, directory, and git branch
- Terminal window title updates with current directory
Custom Navigation
myip- Show local IP address
Environment Integration
The configuration automatically sources available modules and handles missing files gracefully. Create local-zshrc.sh for machine-specific settings that shouldn't be tracked in git.