This repository contains my dotfiles, which are the config files and scripts I use to customize my development environment. These files help me maintain a consistent setup across different machines and save time when setting up new environments.
- Terminals:
- Shell: Zsh with enhanced configuration including system identification and environment-specific setups
- Shell Prompt: Starship - Cross-shell prompt for astronauts
- Window Management: AeroSpace - Tiling window manager for macOS
- Status Bar: SketchyBar - Highly customizable macOS status bar with:
- Workspace indicators with app icons
- System monitoring (CPU, battery, volume)
- VPN status tracking with geolocation
- Window management controls
- Window Highlighting: JankyBorders - Highlights the focused window
- Development:
- Claude Code - AI-powered coding assistant
- Standard Vim configuration for maximum portability
- Git completion and enhanced Git workflow
- Cloud & DevOps: AWS CLI with environment-specific configurations (personal/work separation)
- Environment Detection: Automatic system identification for work/personal environment separation
- AWS Integration: Separate AWS configurations for work and personal accounts
- VPN Monitoring: Real-time VPN status with geolocation caching
- Application Icons: Custom icon mapping system for 200+ applications in SketchyBar
- Modular Configuration: Clean separation of concerns with individual config files
- Smart Workspace Management: AeroSpace integration with SketchyBar for seamless workflow
To set up these dotfiles on your system, run:
./install.shThe installer will:
- Install prerequisites (Xcode CLI tools, Homebrew)
- Install applications and tools via Homebrew
- Create symbolic links for all configuration files
- Apply macOS system defaults
Follow the on-screen prompts to customize the installation.
If you ever want to remove the symlinks created by the installation script, you can use the provided symlinks removal script:
To delete all symlinks created by the installation script, run:
./scripts/symlinks.sh --deleteThis will remove the symlinks but will not delete the actual configuration files, allowing you to easily revert to your previous configuration if needed.
├── aerospace/ # AeroSpace window manager config
├── dependencies/ # External dependencies (sketchybar-app-font)
├── homebrew/ # Homebrew package definitions
├── iterm/ # iTerm2 profiles and preferences
├── scripts/ # Installation and utility scripts
├── sketchybar/ # SketchyBar configuration and plugins
├── starship/ # Starship prompt configuration
├── vim/ # Vim configuration
├── wezterm/ # WezTerm configuration (legacy)
├── zsh/ # Zsh configuration with environment separation
└── symlinks.conf # Symbolic link definitions
- Aerospace Integration: Workspace switching and window management
- System Monitoring: Battery, volume, clock, CPU usage
- Network: VPN status with geolocation and caching
- Application Tracking: Shows running apps with custom icons
- System Identification: Automatic detection of work/personal environments
- AWS Configurations: Separate setups for different AWS accounts
- Git Completion: Enhanced Git workflow with autocompletion
- Place your dotfile in the appropriate directory within the repository
- Update the
symlinks.conffile to include the symlink mapping - Test the symlink creation with
./scripts/symlinks.sh --create
Software is managed via Homebrew:
- Add formulas/casks to
homebrew/Brewfile - Run
./scripts/brew-install-custom.shor the full installer - For custom versions, place Ruby scripts in
homebrew/custom-casks/orhomebrew/custom-formulae/