¿Es posible cambiar a una distribución de teclado específica a través de 'predeterminados', * .lista o similar?

4

Descubrí un script de shell viable con osascript (AppleScript) para cambiar automáticamente a la distribución del teclado de los EE. UU. cuando se activa MacVim (activada por el Teclado Maestro), y la distribución sueca cuando se desactiva:

osascript > /dev/null 2>&1 <<-RAW
on changeKeyboardLayout(layoutName)
    tell application "System Events" to tell process "SystemUIServer"
        tell (1st menu bar item of menu bar 1 whose description is "text input") to {click, click (menu 1's menu item layoutName)}
    end tell
end changeKeyboardLayout

changeKeyboardLayout("Svensk - Pro")
RAW
exit $?

Sin embargo, AppleScript es realmente lento y tampoco prefiero ver el menú de entrada de texto en la barra de estado para que se abra de par en par al cambiar de un lado a otro.

Pregunta:

¿Existe una alternativa a mi enfoque de AppleScript para al instante cambiar el diseño?

... Imagino algo como un comando defaults o la modificación de cualquier archivo .plist como posibles candidatos para el trabajo, solo que no conozco ninguna información específica.

Dos cosas relacionadas con las respuestas que estoy buscando:

  1. Estoy interesado en que el cambio se propague al instante, más rápido que la lenta ejecución de AppleScript.

  2. Prefiero no instalar nuevos daemons de software para lograr esto. (Sin embargo, las sugerencias siempre son bienvenidas, pero es probable que las aplicaciones de terceros no se consideren como la respuesta aceptada).

pregunta Henrik 07.02.2012 - 21:45

2 respuestas

2

~/Library/Preferences/ByHost/com.apple.HIToolbox.*.plist tiene una clave AppleSelectedInputSources , pero modificarla directamente no parece realmente cambiar el diseño.

La mayoría de las soluciones publicadas en MacScripter solo usan scripts de UI también .

Hay una pequeña utilidad Objective-C llamada changeInput aunque eso debería cambiar el diseño casi al instante.

    
respondido por el user495470 08.02.2012 - 02:39
2

Escribo un pequeño programa en object-c, lo cubro en un flujo de trabajo Alfred, y puedes probarlo: enlace Y ahora compile binario para cli de 64 bits: enlace al entrar, espere un argumento como "com.apple.keylayout.US" Con BTT trabajando más rápido.

    
respondido por el Bimawa 18.06.2014 - 06:15

Lea otras preguntas en las etiquetas