Initial commit: Complete macOS dotfiles system
🖖 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>
This commit is contained in:
+117
@@ -0,0 +1,117 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user