dotfiles
Personal shell configuration and utility scripts
Setup
Place this repository in ~/dotfiles and symlink the main configuration:
ln -s ~/dotfiles/zshrc.sh ~/.zshrc
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, Escape ↔ Tilde)
Utility Modules
docker.sh- Docker and docker-compose shortcuts and utilitiesvirtualenv.sh- Python virtual environment managementworktree.sh- Git worktree utilities for managing multiple branches
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
wtc <branch> [path]- Create new worktreewtd [-f] <branch|path>- Delete worktreewtl- List all worktrees
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.