Di mana pintasan keyboard disimpan (untuk tujuan pencadangan dan sinkronisasi)?

16

Di mana saya dapat mengakses pintasan keyboard OS X, katakanlah untuk sinkronisasi Dropbox?

Chauncey Garrett
sumber

Jawaban:

17

Pintasan yang dapat diatur dalam System Preferences> Keyboard> Shortcuts> Shortcut Aplikasi disimpan ~/Library/Preferences/.GlobalPreferences.plistdan daftar properti aplikasi (seperti ~/Library/Preferences/com.apple.iTunes.plistatau ~/Library/Containers/com.apple.chess/Data/Library/Preferences/com.apple.chess.plist).

Cara pintas untuk layanan disimpan di ~ / Library / Preferences / pbs.plist .

Lri
sumber
Aku ingin tahu apakah aku satu-satunya orang yang tidak bekerja untuk ini. File-file ini juga tampaknya bukan file XML yang saya harapkan - mereka tampaknya memiliki beberapa biner atau sesuatu ...
Ben Creasy
sama, jangan bekerja untuk saya (macOS Sierra 10.12.2)
milushov
3
Ini juga muncul sebagai biner bagi saya. Tetapi kemudian gunakan perintah plutil -convert xml1 .GlobalPreferences.plistuntuk mengubahnya menjadi XML, dan plutil -convert binary1 .GlobalPreferences.plistuntuk mengubahnya kembali. Sumber: discussion.apple.com/thread/1768480?tstart=0
Jay
1
Juga, TextWrangler dapat membuka file plist biner.
Jay
4

Seperti yang dijelaskan dalam jawaban yang diterima, Anda dapat menentukan pintasan aplikasi dengan mengonversi plist ke xml dan kemudian menguraikan xml. Anda juga dapat (diuji pada macOS Sierra 10.12.6) mendapatkan nilai langsung dengan defaults readperintah.

Untuk menuliskan perintah kunci pengguna yang berlaku di semua aplikasi yang dijalankan defaults read NSGlobalDomain NSUserKeyEquivalents:

$ defaults read NSGlobalDomain NSUserKeyEquivalents
{
    "Enter Full Screen" = "@^f";
    "Exit Full Screen" = "@^f";
    "Merge All Windows" = "@$m";
}

Untuk menulis pintasan keyboard pengguna untuk aplikasi tertentu, gunakan defaults read <app-plist-name> NSUserKeyEquivalents. Misalnya, untuk mendapatkan pintasan keyboard pengguna untuk Safari run (dalam contoh ini, pengguna belum menetapkan pintasan keyboard khusus untuk Safari)

$ defaults read com.apple.safari NSUserKeyEquivalents
The domain/default pair of (com.apple.safari, NSUserKeyEquivalents) does not exist

Pemetaan kunci yang saya temukan dalam sintaksis string ini:

  • command = $
  • control = ^
  • option = ~
  • shift = @
Ellen Teapot
sumber
2
Bisakah Anda menambahkan beberapa detail untuk membuat jawabannya berdiri sendiri?
nohillside
Untuk pintasan global, Anda juga dapat menggunakandefaults read -g NSUserKeyEquivalents
henry
apakah ada defaults writeperintah untuk mengatur pintasan keyboard yang serupa?
pkamb