Mit defaults steuerst du viele macOS-Einstellungen direkt im Terminal. Das ist skriptbar, reproduzierbar und ideal, wenn du mehrere Macs gleich konfigurieren willst oder dir Klickwege sparen möchtest.
defaults – was du damit wirklich steuerst
defaults ist das Kommandozeilen-Interface zu den macOS Preferences. Viele Apps und Systemkomponenten speichern ihre Einstellungen als Key-Value-Paare in sogenannten Preference Domains. Genau dort liest und schreibt defaults.
Das ist im Alltag besonders praktisch, wenn du
- Einstellungen schnell prüfen willst, ohne dich durch Menüs zu klicken
- Änderungen reproduzierbar machen willst, zum Beispiel in einem Setup-Skript
- auf mehreren Macs dieselben Tweaks setzen möchtest
Hinweis: defaults ist ein Werkzeug für Preferences, nicht für jede Systemeinstellung. Manche Optionen sind bewusst nicht über Preferences steuerbar oder werden von MDM-Profilen überlagert.
Das Grundmodell: Domain, Key, Typ
Damit defaults Sinn ergibt, brauchst du drei Begriffe:
- Domain: der Namensraum, meist eine Reverse-DNS wie
com.apple.finder - Key: der konkrete Einstellungsschlüssel innerhalb der Domain
- Typ: Boolean, Integer, String, Array oder Dictionary
Es gibt auch globale Einstellungen, die nicht an eine einzelne App gebunden sind. Dafür wird oft die Global Domain genutzt.
Lesen: defaults read als erster Schritt
Bevor du etwas änderst, lies den Ist-Zustand. Das verhindert viele Missverständnisse, vor allem bei Typen und Schreibweisen.
Alle Domains anzeigen:
defaults domains
Eine Domain komplett auslesen:
defaults read com.apple.finder
Einen einzelnen Key lesen:
defaults read com.apple.finder AppleShowAllFiles
Wenn du unsicher bist, welcher Typ hinter einem Key steckt, hilft die Typabfrage:
defaults read-type com.apple.finder AppleShowAllFiles
Für große Ausgaben ist Paging hilfreich:
defaults read com.apple.finder | less
Schreiben: defaults write, aber mit Typangabe
Beim Schreiben lohnt es sich, den Typ explizit zu setzen. Das macht die Änderung eindeutig und reduziert Nebenwirkungen.
Boolean:
defaults write com.apple.finder AppleShowAllFiles -bool true
Integer:
defaults write -g KeyRepeat -int 2
String:
defaults write com.apple.screencapture location -string "$HOME/Screenshots"
Array und Dictionary sind ebenfalls möglich, werden aber schnell unübersichtlich. Für viele Alltags-Tweaks reichen Boolean, Integer und String.
Warnhinweis: Schreibe nicht blind Keys, die du nicht zuvor gelesen hast. Manche Keys existieren nur in bestimmten macOS-Versionen oder werden von Apps beim nächsten Start überschrieben.
Änderungen wirksam machen: App neu starten statt neu booten
Viele Preferences werden erst angewendet, wenn die betroffene App oder der betroffene Dienst neu startet. Du kannst das gezielt auslösen, ohne den ganzen Mac neu zu starten.
Finder neu starten:
killall Finder
Dock neu starten:
killall Dock
Menüleiste und systemnahe UI-Komponenten neu starten:
killall SystemUIServer
Wenn eine Änderung trotzdem nicht greift, ist das nicht automatisch ein Fehler. Manche Settings werden nur beim Login, nach einem Reboot oder gar nicht mehr ausgewertet.
Sichern und zurückrollen: export, import und delete
Wenn du ernsthaft an Preferences schraubst, ist ein Backup der Domain sinnvoll. So kannst du später sauber zurück.
Domain als Datei exportieren:
defaults export com.apple.finder "$HOME/Desktop/finder-prefs.plist"
Domain wieder importieren:
defaults import com.apple.finder "$HOME/Desktop/finder-prefs.plist"
Einen einzelnen Key entfernen, um zum Default zurückzugehen:
defaults delete com.apple.finder AppleShowAllFiles
killall Finder
Eine ganze Domain zu löschen ist möglich, aber im Alltag selten nötig. Wenn du es tust, mache vorher ein Export, sonst ist der Rückweg unnötig schmerzhaft.
Praxis: typische macOS-Tweaks ohne GUI
Die folgenden Beispiele sind verbreitet und in vielen Setups nützlich. Je nach macOS-Version können Details abweichen, also im Zweifel zuerst lesen und danach schreiben.
Versteckte Dateien im Finder anzeigen
defaults write com.apple.finder AppleShowAllFiles -bool true
killall Finder
Zurück zum Standard:
defaults delete com.apple.finder AppleShowAllFiles
killall Finder
Screenshot-Speicherort setzen
mkdir -p "$HOME/Screenshots"
defaults write com.apple.screencapture location -string "$HOME/Screenshots"
killall SystemUIServer
Dock automatisch einblenden
defaults write com.apple.dock autohide -bool true
killall Dock
.DS_Store auf Netzlaufwerken vermeiden
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
killall Finder
Optional auch für USB-Medien:
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
killall Finder
Ein kleines Muster für Skripte: erst lesen, dann schreiben
Wenn du defaults in Skripten nutzt, ist ein konservativer Ansatz oft der beste:
- aktuellen Wert lesen
- Backup exportieren
- Wert schreiben
- betroffene App neu starten
Beispiel für Finder-Preferences:
defaults export com.apple.finder "$HOME/Desktop/finder-backup.plist"
defaults write com.apple.finder AppleShowAllFiles -bool true
killall Finder
So bleibt die Änderung nachvollziehbar, und du hast einen klaren Rückweg.
Fazit
defaults ist kein Geheimtrick, aber ein unterschätztes Werkzeug: Es macht macOS-Tweaks skriptbar und wiederholbar, ohne dass du dich durch GUI-Pfade kämpfen musst. Mit Lesen, sauberem Typing und einem Backup-Workflow bleibt das Ganze alltagstauglich und kontrollierbar.
🤫 Pssst: Du möchtest lernen, wie Bash funktioniert? Dann schau dir doch mein Bash-Tutorial für Anfänger an.