🖖 Features: - Master 'engage' script for one-command setup - 120+ CLI tools via Homebrew - 40+ Applications (casks + MAS apps) - Complete macOS system configuration - Security hardening and privacy settings - Obsidian knowledge vault setup - Comprehensive backup strategies - Automated symlink management Live long and prosper\! 🚀 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
117 lines
2.7 KiB
Markdown
117 lines
2.7 KiB
Markdown
# 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 |