วิธีสำรวจค่าเริ่มต้นเพิ่มเติมเขียน tweaks บน OS X


13

ฉันต้องการสำรวจ tweaks ใหม่ซึ่งสามารถทำได้โดยคำสั่ง "defaults write" ใน OS X (ML)

ฉันจะทำอย่างไรเพื่อค้นหาพวกเขาด้วยตัวเองมากกว่าที่จะล่าสัตว์ออนไลน์เพื่อปรับแต่งที่รู้จัก

คำตอบ:


20

Disclaimer:ผมผู้เขียน~/.osx, คอลเลกชันของdefaults writeการตั้งค่า นี่เป็นเทคนิคที่ฉันใช้ในการค้นหาการตั้งค่า แจ้งให้เราทราบหากมีวิธีที่ดีกว่า / ง่ายกว่าที่ฉันไม่ได้พูดถึงที่นี่!


สำหรับการตั้งค่าที่ไม่ซ่อนส่วนใหญ่นี่คือวิธีที่คุณสามารถค้นหาคีย์การตั้งค่าที่ถูกต้องใน Terminal.app:

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

สำหรับการตั้งค่าที่ซ่อนอยู่มันจะยากขึ้น คุณสามารถใช้stringsยูทิลิตีบรรทัดคำสั่งบนไบนารีที่สามารถเรียกใช้งานได้และดูว่าข้อความผลลัพธ์ใด ๆ ดูเหมือนเป็นคีย์การกำหนดค่าตามความชอบหรือไม่ เช่น:

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

นี่เป็นอีกตัวอย่างที่จะค้นหา.frameworkไฟล์ทั้งหมดใน/System/Library/Frameworks/และกรองผลลัพธ์:

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

นอกจากนี้ยังมีเครื่องมือที่เรียกว่าGDBซึ่งสามารถใช้เพื่อค้นหาการตั้งค่าที่ซ่อนอยู่


1
ขอบคุณมากและฉันไม่อยากจะเชื่อเลยว่าคุณกำลังตอบฉัน! ฉันรู้เกี่ยวกับรายการที่ดีของคุณที่ gitHub นานมาแล้ว btw ขอบคุณมาก ๆ! จะลองตอนนี้
Tom S

2
@Lri FWIW ฉันได้ติดตั้ง Mountain Lion ที่สะอาดแล้วเมื่อสัปดาห์ที่แล้วและdefaults read;ทำงานได้ดีที่นี่
Mathias Bynens

0

คำสั่งสตริงอื่น:

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 cfprefsdแสดงรายการคุณสมบัติที่จะแก้ไข คุณสามารถใช้fseventerเพื่อแสดงการเปลี่ยนแปลงระบบไฟล์อื่น ๆ แบบเรียลไทม์

ค่าเริ่มต้นมีคำสั่งย่อย find:

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

ไฟล์ส่วนหัวมักจะมีคำจำกัดความสำหรับคีย์การตั้งค่า:

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

-1

สิ่งที่ฉันคิดจากคำถามของคุณคือคุณต้องการสำรวจ tweaks / การตั้งค่าของแอปพลิเคชัน คุณสามารถอ่านค่ากำหนดของแอพได้ด้วยคำสั่งที่ไม่สำคัญ

defaults read NSGlobalDomain

หรือ

defaults read com.google.Chrome เพื่ออ่านการตั้งค่าที่สามารถเขียนได้ของ Chrome จากคำสั่งเริ่มต้นการเขียนที่คุณขอ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.