Trabajo un poco con alfabetos no ASCII como el hebreo y el griego, por lo que tengo disponibles las distribuciones de teclado adecuadas en el menú de idioma y texto del panel superior. Sin embargo, todavía no conozco todos los caracteres, así que tengo que abrir el visor de teclado cuando quiero escribir en esos idiomas para poder buscar los caracteres que quiero. ¿Hay alguna manera de que aparezca automáticamente el visor de teclado cuando se seleccionan ciertas distribuciones de teclado y que luego desaparezca cuando vuelva a lo normal?
Respuesta
¿Demasiados anuncios?Bien, partiendo de un puesto en SuperUser aquí va:
Puedes crear AppleScripts para cambiar a los distintos idiomas. Si creas Servicios que no toman ninguna entrada y sólo llaman a este script, todos vivirán felizmente en el menú de Servicios cuando los quieras. De lo contrario, utilice el método de activación de AppleScript de su elección.
Para cambiar a, por ejemplo, griego, y que aparezca el visor de teclado cuando lo hagas, ejecuta 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 a la disposición de EE.UU., matando el visor cuando lo hagas, utiliza 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 campo changeKeyboardLayout("layout name")
comando.