¿Dónde se almacenan los métodos abreviados de teclado (para fines de copia de seguridad y sincronización)?

18

¿Dónde puedo acceder a los atajos de teclado de OS X, por ejemplo, para la sincronización de Dropbox?

Chauncey Garrett
fuente

Respuestas:

18

Los accesos directos que se pueden configurar en Preferencias del sistema> Teclado> Accesos directos> Accesos directos a aplicaciones se almacenan en ~/Library/Preferences/.GlobalPreferences.plistlas listas de propiedades de las aplicaciones (como ~/Library/Preferences/com.apple.iTunes.plisto ~/Library/Containers/com.apple.chess/Data/Library/Preferences/com.apple.chess.plist).

Los atajos para los servicios se almacenan en ~ / Library / Preferences / pbs.plist .

Lri
fuente
Me pregunto si soy la única persona para la que esto no funcionó. Estos archivos tampoco parecen ser los archivos XML que esperaría, parecen tener algo binario o algo así ...
Ben Creasy
igual, no funciona para mí (macOS Sierra 10.12.2)
milushov
3
Esto apareció como binario para mí también. Pero luego use el comando plutil -convert xml1 .GlobalPreferences.plistpara convertirlo a XML y plutil -convert binary1 .GlobalPreferences.plistvolver a convertirlo. Fuente: debate.apple.com/thread/1768480?tstart=0
Jay
1
Además, TextWrangler puede abrir archivos binarios plist.
Jay
4

Como se describe en la respuesta aceptada, puede determinar los accesos directos de una aplicación al convertir el plist a xml y luego analizar el xml. También puede (probado en macOS Sierra 10.12.6) obtener los valores directamente con el defaults readcomando.

Para escribir los comandos de tecla de usuario que se aplican en todas las aplicaciones ejecutadas defaults read NSGlobalDomain NSUserKeyEquivalents:

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

Para escribir los atajos de teclado del usuario para una aplicación en particular, use defaults read <app-plist-name> NSUserKeyEquivalents. Por ejemplo, para obtener los atajos de teclado del usuario para ejecutar Safari (en este ejemplo, el usuario no ha configurado ningún atajo de teclado personalizado para Safari)

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

Asignaciones de teclas que he descubierto en esta sintaxis de cadena:

  • command = $
  • control = ^
  • option = ~
  • shift = @
Tetera Ellen
fuente
3
¿Puede agregar algunos detalles para que la respuesta se mantenga por sí sola?
nohillside
Para los accesos directos globales, también puede usardefaults read -g NSUserKeyEquivalents
Henry
¿hay un defaults writecomando para establecer atajos de teclado de manera similar?
pkamb