Setelan Default macOS
Dokumen ini adalah tabel lengkap setiap setelan macOS yang dikelola
scripts/macos-settings.sh. Satu tabel, satu
sumber kebenaran: apply, revert, status, dan check semuanya membaca
baris yang sama di dalam script, dan tabel di bawah mencantumkan baris yang
sama.
Perbedaan dengan
ANIMASI.md: dokumen itu memusatkan diri pada animasi saja, termasuk daftar kunci yang sudah mati. Dokumen ini mencakup semua kelompok setelan, dan tidak mengulang daftar kunci mati sebagai kalau masih berlaku. Perbedaan denganMACOS.md: dokumen itu merekam hasil pengukuran preferensi di mesin ini, termasuk nilai yang sengaja dibiarkan pada bawaan. Dokumen ini hanya memuat yang benar-benar ditulis script.
Cara memakai
bash scripts/macos-settings.sh apply # tulis semua nilai
bash scripts/macos-settings.sh status # tampilkan nilai yang terbaca
bash scripts/macos-settings.sh check # kode 0 kalau semua sesuai
bash scripts/macos-settings.sh revert # hapus kunci, kembali ke bawaanPerintah yang setara tersedia lewat Makefile: make macos,
make macos-status, make macos-revert. Untuk check, jalankan script
langsung; belum ada target Makefile untuk itu.
Pemeriksaan apakah mesin ini benar-benar sesuai dengan tabel di bawah ada di
scripts/doctor.sh. Script itu read-only.
Konvensi revert
Semua baris punya revert, dan revert memakai defaults delete, bukan
defaults write dengan angka bawaan. Alasannya: menghapus kunci mengembalikan
perilaku asli macOS, termasuk kalau Apple mengubah nilai bawaannya di versi
berikutnya. Menulis angka tetap hanya meniru mesin ini, bukan sistem.
Efek samping yang disengaja: nilai bawaan macOS setelah revert tidak selalu
sama dengan nilai yang tercatat di tabel. Yang dijamin adalah “kunci ini tidak
lagi ada, jadi macOS yang menentukan”.
Tabel lengkap
Kelompok animasi
| Domain | Key | Nilai | Efek | Revert |
|---|---|---|---|---|
com.apple.universalaccess | reduceMotion | true | Kurangi gerakan sistem | ya |
com.apple.Accessibility | ReduceMotionEnabled | true | Kunci kembar, lihat catatan di bawah | ya |
com.apple.dock | autohide-time-modifier | 0.15 | Pengali durasi animasi Dock, makin kecil makin cepat | ya |
com.apple.dock | autohide-delay | 0 | Hapus jeda sebelum Dock muncul | ya |
com.apple.dock | launchanim | false | Matikan animasi pantulan aplikasi | ya |
com.apple.finder | DisableAllAnimations | true | Matikan animasi Finder | ya |
Dua kunci Reduce Motion ditulis bersamaan karena Dock membaca status lewat
monitor perubahan dan API aksesibilitas, bukan lewat pembacaan domain. Menulis
satu domain saja berisiko tidak terbaca. Rinciannya ada di
ANIMASI.md.
autohide-time-modifier adalah pengali durasi, bukan durasi. Arah ini sering
terbalik di panduan lain: di sana makin besar berarti makin cepat, sedangkan
sebenarnya makin kecil yang lebih cepat. 0.15 hampir tanpa animasi.
Kelompok dock
| Domain | Key | Nilai | Efek | Revert |
|---|---|---|---|---|
com.apple.dock | autohide | true | Dock tersembunyi sendiri | ya |
com.apple.dock | orientation | bottom | Dock di tepi bawah layar | ya |
autohide ditambahkan karena dua kunci animasi di atas tidak pernah dipakai
kalau autohide sendiri mati. Sebelum ini ditulis, mesin ini kebetulan sudah
memiliki autohide aktif lewat System Settings, jadi nilainya tampak berhasil
padahal mesin baru hanya mendapat pengali durasi untuk fitur yang tidak
dinyalakan.
orientation dikunci ke tepi bawah supaya Dock tidak pernah menabrak hot corner
kiri. Hot corner kiri di MACOS.md diisi Mission Control dan
Launchpad, dan posisinya tidak ikut bergeser kalau Dock pindah tepi.
Kelompok finder
| Domain | Key | Nilai | Efek | Revert |
|---|---|---|---|---|
com.apple.finder | ShowPathbar | true | Path bar selalu tampil di bawah nama folder | ya |
com.apple.finder | ShowStatusBar | true | Status bar selalu tampil di bawah isi folder | ya |
com.apple.finder | FXPreferredViewStyle | Nlsv | Tampilan bawaan List, bukan Icon | ya |
com.apple.finder | FXDefaultSearchScope | SCcf | Cari di folder yang dibuka, bukan seisi disk | ya |
com.apple.finder | DisableExtensionChangeWarning | true | Matikan peringatan saat mengganti ekstensi berkas | ya |
Path bar dan status bar disembunyikan secara bawaan, dan keduanya hilang kalau jendela Finder sempit. Keduanya ditulis supaya informasi lokasi dan jumlah berkas tidak bergantung pada lebar jendela.
Tampilan bawaan adalah Icon, di mana nama berkas sering terpotong sehingga path bar dan status bar jadi tidak berguna. List view dipakai sebagai tampilan bawaan karena itu yang membuat dua baris di atas jadi terbaca.
FXDefaultSearchScope membuat pencarian di Finder berperilaku seperti pencarian
di terminal, yaitu terbatas pada folder yang sedang dibuka. Tanpa itu, Cmd-F
mencari seluruh disk dan hasilnya membingungkan saat bekerja di satu proyek.
DisableExtensionChangeWarning muncul saat mengganti .txt menjadi .rtf atau
sejenisnya. Repo ini memakai teks biasa untuk konfigurasi, jadi peringatan itu
hanya mengganggu.
Kelompok screenshot
| Domain | Key | Nilai | Efek | Revert |
|---|---|---|---|---|
com.apple.screencapture | location | ~/Pictures/Screenshots | Folder tujuan screenshot | ya |
com.apple.screencapture | disable-shadow | true | Tangkapan tanpa bayangan window | ya |
Lokasi dipindah ke folder khusus. Folder ~/Pictures dipakai untuk
Photos Library.photoslibrary dan Wallpaper, jadi screenshot tidak lagi
bercampur dengan aset foto saat folder itu dibuka dari Finder atau dari yazi.
Script juga membuat foldernya, karena defaults tidak punya antarmuka yang
membuatkan folder tujuan seperti yang dilakukan System Settings.
disable-shadow menghapus bayangan window yang menambah lapisan semi
transparan di sekeliling tangkapan. Di tema AMOLED dengan background hitam
pekat, bayangan justru tampak seperti aura gelap, dan menambah tinggi gambar
tanpa menambah isi.
Folder ~/Pictures/Screenshots tidak dihapus saat revert, karena isinya
milik pengguna. Sama seperti pengaturan screenshot lain di
MACOS.md, gaya tangkapan dan format berkas sengaja tidak diubah:
style dan target dibiarkan sesuai bawaan yang sudah berjalan di mesin ini.
Kelompok keyboard
| Domain | Key | Nilai | Efek | Revert |
|---|---|---|---|---|
NSGlobalDomain | InitialKeyRepeat | 2 | Jeda 30 ms sebelum tombol yang ditahan mulai mengulang | ya |
NSGlobalDomain | KeyRepeat | 1 | Mengulang tiap 15 ms | ya |
Nilai dalam satuan 15 ms. Bawaan macOS adalah 25 (jeda 375 ms) dan 2
(30 ms). Slider di System Settings berhenti di 15 dan 2, jadi nilai di sini
berada di bawah batas slider dan hanya bisa dicapai lewat defaults.
Efeknya terasa paling besar saat menekan tombol delete untuk menghapus teks
panjang. Peringatan: nilai ini berlaku untuk semua tombol, bukan hanya delete.
Menahan tombol huruf sedikit saja bisa langsung menghasilkan pengulangan. Bila
itu terjadi, naikkan KeyRepeat ke 2.
Sebagian setelan keyboard baru berlaku penuh setelah logout.
Kelompok percobaan
| Domain | Key | Nilai | Efek | Revert |
|---|---|---|---|---|
NSGlobalDomain | NSAutomaticWindowAnimationsEnabled | false | Belum terbukti dibaca AppKit macOS 27 | ya |
Kunci ini ditulis, tapi check dan doctor.sh melaporkannya sebagai catatan,
bukan kegagalan. Alasannya ada di ANIMASI.md: string kuncinya
masih ada di AppKit macOS 27, tapi belum ada bukti AppKit masih membacanya.
Menyebutnya gagal akan membuat doctor.sh melaporkan masalah yang mungkin tidak
pernah ada.
Kunci yang tidak dipakai
Daftar lengkap kunci yang sudah tidak berlaku ada di
ANIMASI.md, termasuk com.apple.fx windowAnimationDuration,
com.apple.dock expose-animation-duration, NSGlobalDomain QLPanelAnimationDuration,
dan lainnya. Kunci-kunci itu tidak ada di tabel di atas, dan tidak boleh
dimasukkan kembali.
Butuh sudo, tidak bisa diotomatiskan
Bagian ini sengaja tidak masuk scripts/macos-settings.sh, karena defaults
bekerja pada preferensi milik user dan tidak bisa menyentuh lokasi sistem.
Menaruhnya di script hanya akan menghasilkan file yang gagal diam-diam.
| Yang tidak bisa diotomatiskan | Kenapa | Cara manual |
|---|---|---|
| Matikan Spotlight di volume eksternal | Menyentuh service Spotlight, butuh hak root | sudo mdutil -i off /Volumes/<nama> |
Autoindex volume di /etc/fstab | Berkas sistem | edit /etc/fstab sebagai root |
pmset untuk pengaturan baterai dan tidur | Butuh root, dan klasifikasi default belum terukur | sudo pmset -b displaysleep 2 |
| FileVault | Dikelola level OS, bukan lewat defaults | sudo fdesetup enable |
| SIP | Hanya bisa diubah dari Recovery Mode | csrutil di Recovery |
| Time Machine | Butuh volume atau lokasi jaringan yang ditentukan | tmutil setdestination |
Dua batasan yang perlu jujur disebut:
- Perintah di tabel ini tidak dijalankan oleh script mana pun, dan tidak
diuji di mesin ini. Itu disengaja, karena semuanya butuh
sudo. Daftar ini dicatat supaya tidak ada yang mengira KE-macOS sudah tercakup penuh. pmsetpunya batas pengukuran yang nyata. Nilainya diMACOS.mdmemang terukur, tapi pengukuran itu tidak membandingkan dengan default pabrik, jadi belum bisa dipastikan mana yang non-default. Karena itupmsettidak dimasukkan ke script, bukan hanya karena butuh root.
Rujukan
| Berkas | Isi |
|---|---|
scripts/macos-settings.sh | Tabel SETTINGS yang jadi sumber kebenaran |
ANIMASI.md | Setelan animasi dan kunci yang sudah mati |
MACOS.md | Pengukuran seluruh preferensi mesin ini |
INVENTORY.md | Inventaris versi paket dan aplikasi |
scripts/doctor.sh | Pemeriksaan read-only apakah mesin sesuai repo |