¿Puedo mostrar automáticamente el visor de teclado en ciertos diseños?

Trabajo un poco con alfabetos que no son ASCII, como el hebreo y el griego, por lo que tengo los diseños de teclado apropiados disponibles en el menú de idioma y texto en el panel superior. Sin embargo, todavía no conozco todos los caracteres, así que tengo que abrir el visor del teclado cuando quiero escribir en esos idiomas para poder buscar los caracteres que quiero. ¿Hay alguna manera de abrir automáticamente el visor del teclado cuando se seleccionan ciertos diseños de teclado y luego hacer que desaparezca cuando vuelvo a la normalidad?

Respuestas (1)

OK, a partir de una publicación en SuperUser , aquí va:

Puede crear AppleScripts para cambiar a los distintos idiomas. Si crea Servicios que no toman ninguna entrada y simplemente llama a este único script, todos vivirán felizmente en el menú Servicios cuando los desee. De lo contrario, utilice el método de activación de AppleScript que prefiera.

Para cambiar, por ejemplo, al griego y mostrar el visor de teclado cuando lo haga, ejecute este script:

 tell application "System Events"
     if exists process "Keyboard Viewer" then
         display alert "running"
         try
             tell application "KeyboardViewer" to quit
         end try
     end if
 end tell
 tell application "Finder"
     open item "System:Library:Input Methods:KeyboardViewer.app" of the startup disk
 end tell
 changeKeyboardLayout("Greek")

 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

Para volver al diseño de EE. UU., matando al espectador cuando lo haga, use esto:

 tell application "System Events"
     if exists process "Keyboard Viewer" then
         display alert "running"
         try
             tell application "KeyboardViewer" to quit
         end try
     end if
 end tell
 changeKeyboardLayout("U.S.")

 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

Sustituya los nombres de las distribuciones de teclado que desee en el changeKeyboardLayout("layout name")comando.