# Application Configuration Management This document explains how application configurations are managed in this dotfiles repository. ## Strategy Overview We use a hybrid approach: 1. **Direct file management** for simple configs (.npmrc, .ssh/config) 2. **Custom backup scripts** for complex macOS apps (LaunchBar, Hazel, Bartender) 3. **Mackup** as an optional automated solution ## Configuration Locations ### Simple Configs (Symlinked) - `.npmrc` → `~/dotfiles/.npmrc` - `.ssh/config` → `~/dotfiles/ssh/config` (template) ### macOS Application Configs - **LaunchBar**: `~/Library/Application Support/LaunchBar/` - **Hazel**: `~/Library/Application Support/Hazel/` - **Bartender**: `~/Library/Preferences/com.surteesstudios.Bartender.plist` ## Backup Methods ### Method 1: Manual Script (Recommended) ```bash # Run the backup script ~/dotfiles/macos-apps/backup-app-configs.sh ``` This script: - Backs up LaunchBar configuration and custom actions - Exports Hazel rules database - Saves Bartender preferences - Converts plists to readable XML format ### Method 2: Mackup (Automated) ```bash # First time setup mackup backup # On new machine mackup restore ``` Mackup advantages: - Automatic detection of supported apps - Creates symlinks for live sync - Supports 300+ applications ## SSH Config We maintain a template at `~/dotfiles/ssh/config.example` with: - Sanitized host configurations - Best practice settings - Examples for common scenarios **Never commit**: - Private keys - Actual hostnames/IPs - Usernames - Sensitive paths ## NPM Configuration The `.npmrc` file includes: - Author defaults for `npm init` - Performance optimizations - Security settings - Registry configuration (if needed) ## Restore Process ### Quick Restore 1. Install applications via Homebrew: ```bash brew bundle install ``` 2. Restore configs: ```bash # NPM ln -sf ~/dotfiles/.npmrc ~/.npmrc # SSH (edit first!) cp ~/dotfiles/ssh/config.example ~/.ssh/config chmod 600 ~/.ssh/config # macOS apps ~/dotfiles/macos-apps/restore-app-configs.sh ``` ### Using Mackup ```bash # After installing apps mackup restore ``` ## Adding New Applications To add config management for a new app: 1. **Find config location**: ```bash find ~/Library -name "*AppName*" -type d ``` 2. **Add to backup script** or configure Mackup 3. **Document** the process here ## Troubleshooting - **Permissions issues**: Some apps need to be quit before restoring - **License/authorization**: Most apps need re-activation after restore - **Preferences cache**: May need to `killall cfprefsd` after restoring plists - **Mackup conflicts**: Check `~/.mackup/` for conflicting symlinks