Bagaimana cara menjelajahi lebih banyak default menulis tweak pada OS X?

13

Saya ingin menjelajahi beberapa tweak baru yang dapat dilakukan oleh perintah "default menulis" di OS X (ML).

Apa yang bisa saya lakukan untuk mencari tahu sendiri daripada berburu online untuk tweak yang dikenal?

Tom S
sumber

Jawaban:

20

Penafian: Saya penulis ~/.osx, kumpulan defaults writepengaturan . Ini adalah teknik yang saya gunakan untuk menemukan pengaturan. Beri tahu saya jika ada metode yang lebih baik / lebih mudah yang tidak saya sebutkan di sini!


Untuk sebagian besar pengaturan yang tidak tersembunyi, ini adalah bagaimana Anda dapat menemukan kunci preferensi yang benar di Terminal.app:

defaults read > a
# Change the setting
defaults read > b
diff a b

Untuk pengaturan tersembunyi, itu menjadi lebih rumit. Anda dapat menggunakan stringsutilitas baris perintah pada sembarang biner yang dapat dieksekusi dan melihat apakah ada teks yang dihasilkan seperti kunci preferensi. Misalnya:

strings /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

Berikut ini contoh lain yang akan melihat semua .frameworkfile dalam /System/Library/Frameworks/dan memfilter output agak:

strings /System/Library/Frameworks/*.framework/Versions/Current/* /System/Library/Frameworks/*/Frameworks/*/Versions/Current/* 2> /dev/null | grep -E '^[a-zA-Z0-9_.-]{10,80}$' | sort | uniq

Ada juga alat yang disebut GDB yang dapat digunakan untuk menemukan preferensi tersembunyi.

Mathias Bynens
sumber
1
Terima kasih banyak dan saya tidak percaya Anda membalas saya! Saya tahu tentang daftar bagus Anda di github sejak lama. Terima kasih banyak! Akan coba ini sekarang.
Tom S
2
@Li FWIW, saya telah melakukan pemasangan Singa Gunung yang bersih minggu lalu dan defaults read;berfungsi dengan baik di sini.
Mathias Bynens
0

Perintah string lain:

for f in $(mdfind kMDItemContentType==public.unix-executable -onlyin /System/Library/); do strings $f 2> /dev/null | grep -E '^[[:alnum:]_.-]{10,80}$' | grep ^Apple | sort -u | sed "s/^/${f##*/} /g"; done

sudo opensnoop -n cfprefsdmenunjukkan daftar properti apa yang diubah. Anda dapat menggunakan fseventer untuk menampilkan perubahan sistem file lainnya secara real time.

default memiliki sub-perintah find:

$ defaults find nsquitalw
Found 1 keys in domain 'Apple Global Domain': {
    NSQuitAlwaysKeepsWindows = 1;
}

File header sering berisi definisi untuk kunci preferensi:

grep PreferenceKey -r ~/Code/Source/WebKit/ | grep '\.h:'
Lri
sumber
-1

Apa yang saya asumsikan dari pertanyaan Anda adalah Anda ingin menjelajahi tweak / pengaturan aplikasi. Anda dapat membaca preferensi aplikasi dengan perintah sepele ini

defaults read NSGlobalDomain

atau

defaults read com.google.Chrome untuk membaca preferensi chrome yang dapat ditulisi dari perintah tulis default yang Anda minta.

Mr.Shan0
sumber