Manages macOS preferences through config.yaml.
All groups default to disabled:
preferences:
enable_groups:
terminal: false # Terminal settings
security: false # Security settings
input: false # Mouse/trackpad
finder: false # Finder settings
dock: false # Dock settings
safari: false # Safari settings
global: false # System-wide
activity: false # Activity Monitorterminal:
iterm2:
"Normal Font": "Hack Nerd Font Mono 12"
global:
KeyRepeat: 1
InitialKeyRepeat: 10
ApplePressAndHoldEnabled: falsesecurity:
screensaver:
askForPassword: 1
askForPasswordDelay: 0input:
trackpad:
Clicking: true
TrackpadThreeFingerDrag: true
global:
"com.apple.mouse.scaling": 2.0
"com.apple.trackpad.scaling": 1.5finder:
finder:
ShowPathbar: true
ShowStatusBar: true
AppleShowAllFiles: false
_FXSortFoldersFirst: true
FXDefaultSearchScope: "SCcf"dock:
dock:
autohide: true
tilesize: 48
mineffect: "genie"# List backups
./cops.sh --list-backups preferences
# Restore preference
./cops.sh --restore preferences com.apple.finder
# Preview restore
./cops.sh --dry-run --restore preferences com.apple.finder
# Check current values
defaults read com.apple.finder
# Monitor changes
defaults read > before.txt
# Make changes
defaults read > after.txt
diff before.txt after.txt- Verify group is enabled in config.yaml
- Check domain name exists
- Validate value types (bool, int, string)
- Run with sudo if needed
- Check backup directory exists