4 votos

Mavericks: ¿Cómo AGREGAR una Fuente de Entrada a través de plists/defaults?

Estoy tratando de automatizar mi OS X instalación pero estoy atascado tratando de agregar mediante programación una nueva Fuente de Entrada o el diseño del teclado.

Yo suelo usar dos diseños: regular e Internacional de los estados unidos, así que lo que estoy tratando de hacer es agregar la Internacional de los estados unidos de diseño.

Esto es lo que he notado hasta ahora. Cuando puedo agregar manualmente el diseño, veo que esta entrada se añade a mi AppleEnabledInputSources clave en la com.apple.HIToolbox plist:

--- a/def0.txt
+++ b/def1.txt
@@ -17,6 +17,11 @@
                 {
             "Bundle ID" = "com.apple.PressAndHold";
             InputSourceKind = "Non Keyboard Input Method";
+        },
+                {
+            InputSourceKind = "Keyboard Layout";
+            "KeyboardLayout ID" = 15000;
+            "KeyboardLayout Name" = "USInternational-PC";
         }
     );
     AppleInputSourceHistory =     (

Tengo este resultado realizando defaults read com.apple.HIToolbox. Me puede confirmar la misma, además de abrir directamente ~/Library/Preferences/com.apple.HIToolbox.plist.

Así que decidí que probablemente todo lo que tenía que hacer era simplemente agregar la misma entrada y todo este trabajo. Así que he vuelto al manual de adición (y confirmado la entrada de la plist se había ido) y ahora trató de:

$ defaults write com.apple.HIToolbox AppleEnabledInputSources -array-add '{InputSourceKind="Keyboard Layout"; "KeyboardLayout Name"="USInternational-PC"; "KeyboardLayout ID"=15000;}'

Confirmo de nuevo a través de la defaults read diffs que añade la misma entrada a la plist, pero no funciona!

Traté de matar a cfprefsd y SystemUIServer e incluso reiniciar pero nada de esto parece funcionar.

¿Alguien tiene una idea acerca de lo que podría estar sucediendo aquí?

1voto

sigriston Puntos 16

Resulta que el formato que he usado para el AppleEnabledInputSources entrada fue mala, porque considera que todo tipo de string, pero KeyboardLayout ID debe ser de tipo integer!

Así que la forma correcta de hacerlo sería a través de XML:

defaults write com.apple.HIToolbox AppleEnabledInputSources -array-add '<dict><key>InputSourceKind</key><string>Keyboard Layout</string><key>KeyboardLayout ID</key><integer>15000</integer><key>KeyboardLayout Name</key><string>USInternational-PC</string></dict>'

Después de ejecutar ese comando y hacer un cierre de sesión/login, parece como si las cosas funcionan bien.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X