Gdzie są przechowywane skróty klawiaturowe (do tworzenia kopii zapasowych i synchronizacji)?

18

Gdzie mogę uzyskać dostęp do skrótów klawiaturowych OS X, na przykład synchronizacji Dropbox?

Chauncey Garrett
źródło

Odpowiedzi:

18

Skróty, które można ustawić w Preferencjach systemowych> Klawiatura> Skróty> Skróty aplikacji są przechowywane w ~/Library/Preferences/.GlobalPreferences.plistlistach właściwości aplikacji (takich jak ~/Library/Preferences/com.apple.iTunes.plistlub ~/Library/Containers/com.apple.chess/Data/Library/Preferences/com.apple.chess.plist).

Skróty do usług są przechowywane w ~ / Library / Preferences / pbs.plist .

Lri
źródło
Zastanawiam się, czy jestem jedyną osobą, dla której to nie działało. Te pliki też nie wydają się być plikami XML, których bym się spodziewał - wydają się mieć jakieś pliki binarne lub coś ...
Ben Creasy,
to samo, nie pracuj dla mnie (macOS Sierra 10.12.2)
milushov
3
Dla mnie też wydawało się to binarne. Ale następnie użyj polecenia, plutil -convert xml1 .GlobalPreferences.plistaby przekonwertować go na XML i plutil -convert binary1 .GlobalPreferences.plistprzekonwertować z powrotem. Źródło: Discussions.apple.com/thread/1768480?tstart=0
Jay
1
TextWrangler może również otwierać binarne pliki plist.
Jay
4

Jak opisano w zaakceptowanej odpowiedzi, możesz określić skróty aplikacji, konwertując plist na xml, a następnie analizując xml. Możesz także (przetestowane na macOS Sierra 10.12.6) uzyskać wartości bezpośrednio za pomocą defaults readpolecenia.

Aby wypisać polecenia klawiszy użytkownika, które obowiązują we wszystkich aplikacjach defaults read NSGlobalDomain NSUserKeyEquivalents:

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

Aby napisać skróty klawiaturowe użytkownika dla konkretnej aplikacji, użyj defaults read <app-plist-name> NSUserKeyEquivalents. Na przykład, aby uzyskać skróty klawiaturowe dla przeglądarki Safari (w tym przykładzie użytkownik nie ustawił żadnych niestandardowych skrótów klawiaturowych dla Safari)

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

Kluczowe mapowania, które odkryłem w tej składni łańcucha:

  • command = $
  • control = ^
  • option = ~
  • shift = @
Ellen Teapot
źródło
3
Czy możesz dodać kilka szczegółów, aby odpowiedź była samodzielna?
nohillside
W przypadku skrótów globalnych możesz także użyćdefaults read -g NSUserKeyEquivalents
Henry
czy istnieje defaults writepolecenie podobnie ustawionych skrótów klawiaturowych?
pkamb