Skip to content
cccskills
FreePublished on GitHub

maintaining-macos-defaults

Use on demand to reconcile a Mac's GUI-changed settings into version control — when the user says "reconcile my mac defaults", "capture my macOS settings", or after they've changed System Settings and want the keepers tracked. Drives homedir-manager's `defaults` verb (capture/drift/apply) against a versioned desired-state file.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md3.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Maintaining macOS defaults

Lets the user drive their Mac through the GUI like a normal person, then fold the settings worth keeping into a version-controlled file. The judgment — signal vs. noise — is your job; the tool just reads, diffs, and writes the macOS preferences (CFPreferences) system.

The data (in the user's dotfiles content repo, deployed to ~/.config/macos-defaults/)

  • desired.tsv — the tracked settings: domain⇥key⇥type⇥value, sorted. Scalars only (bool/int/float/string). This is both what gets applied and the baseline drift diffs against.
  • watched-domains — one domain per line; the domains drift scans for new settings.
  • noise-deny — glob patterns (matched against key names) that drift and whole-domain capture ignore (window frames, recents, counters, timestamps).

The on-demand loop

When the user asks to reconcile (after they've changed settings in the GUI):

  1. See what changed:

    homedir-manager defaults drift ~/.config/macos-defaults/desired.tsv \
      --watched ~/.config/macos-defaults/watched-domains \
      --noise   ~/.config/macos-defaults/noise-deny
    
    • DRIFT <domain> <key> current=… desired=… — a tracked setting whose live value changed.
    • NEW <domain> <key> current=… — a setting they changed that isn't tracked yet.
  2. Triage each line. Keep deliberate preferences; drop noise. A setting is signal if a person would knowingly choose it (com.apple.dock autohide, …finder ShowPathbar). It's noise if it's machine state: window positions, recent-item lists, counters, timestamps, last-opened paths, UUIDs. When unsure, lean toward not tracking it — and if a noise pattern would have caught it, add that pattern to noise-deny instead of rejecting it one-off.

  3. Fold keepers into desired.tsv with correct types read live:

    homedir-manager defaults capture com.apple.dock autohide >> ~/.config/macos-defaults/desired.tsv
    

    Then keep the file sorted (sort -o). For a DRIFT (changed tracked value), update the existing line instead of appending a duplicate.

  4. Commit the content repo. Other machines pick it up on git pull.

Applying on another Mac

apply writes the tracked settings into the live preferences and restarts Dock/Finder/SystemUIServer:

homedir-manager defaults apply ~/.config/macos-defaults/desired.tsv

Only run this when the user wants that machine to match the tracked state — it changes their live settings. Some settings need a logout to fully take effect.

Limits

  • Scalars only. Dictionary/array/date/data values are flagged (SKIP … on stderr), not written.
  • Covers the CFPreferences surface — most of "driving your Mac," but not settings that live in sandboxed containers, opaque databases, or need scutil/systemsetup.
  • macOS only.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when adding, changing, deploying, onboarding, or auditing homedir-manager content repos — the marker-based symlink deployment system that manages dotfiles and config across your machines. Covers the update workflow, the manifest, OS-splitting, secrets, new-machine onboarding, and the audit process.

The English summary is being prepared. Showing the original description.

obra/homedir-manager5Updated Jun 8, 2026

See all skills by obra

Report a problem with this skill