Jawaban:
Anda dapat menggunakan AppleScript dari Terminal menggunakan osascript:
osascript -e "tell application \"System Preferences\"" -e "set the current pane to pane id \"com.apple.preference.keyboard\"" -e "reveal anchor \" pintasTab \ "of pane id \" com.apple.preference.keyboard \ "" -e "aktifkan" -e "end tell"
Ganti ‘shortcutsTab’ dengan salah satu T keyboardTab ’,‘ InputSources ’,‘ shortcutsTab ’,‘ Text ’,‘ Dictation ’atau‘ keyboardTab_ModifierKeys ’untuk mengubah tab yang dibuka.
Untuk menemukan daftar tab yang tersedia di panel preferensi lain, gunakan
osascript -e "tell application \"System Preferences\"" -e "set the current pane to pane id \"com.apple.preference. nama \ "" -e "dapatkan nama setiap jangkar panel id \" com.apple.preference. nama "" -e "dan katakan"
di mana ‘nama’ adalah nama panel preferensi.
Untuk memilih kategori pintasan tertentu, Anda dapat menggunakan Acara Sistem untuk memilih baris dari tabel kiri.
osascript -e "tell application \"System Preferences\"" \ -e "set the current pane to pane id \"com.apple.preference.keyboard\"" \ -e "reveal anchor \"shortcutsTab\" of pane id \"com.apple.preference.keyboard\"" \ -e "end tell" \ -e "tell application \"System Events\"" \ -e "tell application process \"System Preferences\"" \ -e "repeat while not (window 1 exists)" \ -e "end repeat" \ -e "tell window 1" \ -e "repeat while not (row 1 of table 1 of scroll area 1 of splitter group 1 of tab group 1 exists)" \ -e "end repeat" \ -e "select row saya dari tabel 1 area gulir 1 grup pembagi 1 grup tab 1 "\ -e "end tell" " -e "end tell" " -e "end tell" " -e "beri tahu aplikasi \" System Preferences \ "" \ -e "aktifkan" \ -e "akhiri"
‘I’ adalah indeks (dihitung dari 1) dari baris di kolom kiri tab panel preferensi. Baris baru (menggunakan ‘\’ pada baris sebelumnya) dan spasi putih di luar tanda bicara hanya untuk memformat dan dapat dihilangkan.
Hati-hati dengan penggunaan 'repeat while not' yang menunggu System Preferences untuk membuka halaman yang diperlukan, namun ini membekukan kode sampai saat itu, dan jika System Preferences disibukkan dengan hal lain seperti masuk ke iCloud yang bisa ' t terganggu, ini akan membeku sampai Anda berhenti secara manual.
Lebih jauh ke jawaban dari @grgarside (saya tidak memiliki reputasi yang cukup untuk memposting ini sebagai komentar, maaf) tidak semua ID cocok dengan pola com.apple.preference.name
(Yang membuatku tersandung untuk sementara waktu).
Pada macOS Sierra (10.12.2) ada 19 ID panel preferensi yang cocok dengan pola itu, 8 yang cocok dengan pola com.apple.preferences.name
(perhatikan s) dan dua outlier ( com.apple.prefs.backup
dan com.apple.Localization
).
Untuk mendapatkan ID dari panel saat ini (yang sudah Anda buka di System Preferences) gunakan:
osascript -e "tell application \"System Preferences\"" -e "get the ID of the current pane" -e "end tell"
Untuk mendapatkan setiap ID yang tersedia, gunakan:
osascript -e "tell application \"System Preferences\"" -e "get the ID of every pane" -e "end tell"
get the name of every anchor of pane id "com.apple.preference.name
applescript juga?