¿Cómo mostrar u ocultar Keyboard Viewer con un atajo de teclado?

Me gustaría mostrar y ocultar el Visor de teclado usando un atajo.

  • ¿Hay alguna forma de mostrar el Visor de teclado a través de un atajo de teclado?
  • ¿Hay alguna manera de mostrar automáticamente el Visor de teclado una vez que cambio a un idioma específico?
La solución ideal sería asignar un atajo de teclado a un Apple Script que muestre el teclado.
Encontré esta manera en Monterey: Preferencias del sistema> Accesibilidad> Teclado> Visor - habilitar; en "Opciones..." seleccione un HotCorner para mostrar/ocultar y reducir el tiempo de permanencia a 0,25 seg. Entonces parece funcionar lo suficientemente bien con el puntero del mouse en la esquina de la pantalla.

Respuestas (11)

Iniciar Keyboard Viewer con un servicio (mejorado)

Puede iniciar Keyboard Viewer con un atajo usando Automator y la funcionalidad OS X Services.

El programa Keyboard Viewer se encuentra en /System/Library/Input Methods/KeyboardViewer.app(en versiones anteriores a Lion, puede estar en /System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app). Lo abre con una tecla de acceso rápido usando Automator para crear un servicio de inicio simple.

  1. Abra Automator y seleccione Servicio como el tipo de su nuevo documento.
  2. Establezca las opciones (en la parte superior del área de flujo de trabajo) en "El servicio no recibe información en ninguna aplicación ".
  3. Agregue la acción Ejecutar AppleScript a su flujo de trabajo y reemplace el texto con las siguientes líneas:

    if application "KeyboardViewer" is running then
        quit application "KeyboardViewer"
    end if
    
    activate application "KeyboardViewer"
    
    -- wait until the window has been closed, then end the KeyboardViewer process
    set numberOfWindows to 1
    repeat until numberOfWindows = 0
        delay 5
        tell application "System Events"
            tell process "KeyboardViewer"
                set numberOfWindows to count windows
            end tell
        end tell
    end repeat
    quit application "KeyboardViewer"
    
  4. Guarde con un nombre como "Abrir visor de teclado", luego abra Preferencias de teclado en la pestaña Métodos abreviados de teclado. Seleccione Servicios en el panel izquierdo y desplácese hasta la parte inferior, donde debería ver el nombre de su Servicio en la Sección General.
  5. Asegúrese de que la casilla esté marcada para habilitarla, luego selecciónela y haga clic en Agregar acceso directo para configurar una tecla de acceso rápido.
  6. Después de configurar la tecla de acceso directo, abra el menú Servicios en cualquier aplicación (es decir, Finder > Servicios), luego ciérrelo. Por alguna razón, mi tecla de acceso rápido no funcionó hasta que hice esto.

Un par de notas:

  • La secuencia de comandos requiere que marque la casilla Habilitar acceso para dispositivos de asistencia en el panel de preferencias de Universal Access .
  • Cerrar la ventana del Visor de teclado en realidad no cierra la aplicación y, como señala Lri, puede ser un poco acaparador de recursos, por lo que el repeatciclo verifica cada 5 segundos si el Visor de teclado tiene ventanas abiertas y, de no ser así, cierra la ventana. proceso.
  • Si está ejecutando un sistema operativo anterior a Lion, es posible que deba reemplazar las instancias de KeyboardViewercon KeyboardViewerServer. No tengo nada anterior a Lion a mano para probar esto (si alguien más pudiera informar en los comentarios, sería genial).
  • Debido a que la secuencia de comandos se repite hasta que se cierra el Visor de teclado, el ícono del engranaje giratorio de Automator se mostrará en la barra de menú hasta que se cierre.
¡SI! Esto es exactamente lo que busco. Estoy familiarizado con Automator y Shell-Scripting, solo necesitaba una pista. Muchísimas gracias... :)
Actualicé esto usando un Applescript que ejecuta una verificación para ver si la ventana se ha cerrado y, de ser así, cierra el proceso para evitar la pérdida de rendimiento. Cualquier persona interesada en la versión anterior basada en bash puede encontrar esa revisión aquí .
Con una modificación mínima, este script alterna el visor. Reemplace "end if" con "else" y mueva "else if" al final.
Gran solución. Sin embargo, ¿el elemento de menú "Mostrar visor de teclado" no sabe que el visor de teclado se está ejecutando? Entonces, esto rompe ese elemento del menú si usa ambos.
/System/Library/Input Methods/KeyboardViewer.appno existe en Catalina. Abrí todas las aplicaciones /System/Library/Input Methodsy ninguna de ellas abrió el visor de teclado. ¿Algunas ideas?
¿Alguna actualización para el Monterey? No puedo configurar ninguna solución allí... :(

He encontrado una manera a través de BetterTouchTool para hacer lo siguiente:

  • Activar Keyboard Viewer mediante un atajo
  • Cerrar Keyboard Viewer con otro atajo
  • Alternar Keyboard Viewer con un atajo (no es necesario usar los dos anteriores)
  • También subí el AppleScript por conveniencia.

Plataforma: rMBP Mountain Lion OSX 10.8


Activar Keyboard Viewer mediante un atajo

  • Inicie BetterTouchTool
  • Agregar atajo de teclado
  • Agregar acción predefinida >> Abrir aplicación/archivo/secuencia de comandos...
  • Vaya a Macintosh HD/Sistema/Biblioteca/Métodos de entrada/
  • Seleccionar visor de teclado

Ahora tiene un atajo de teclado para activar el visor sin un script adicional.

SIN EMBARGO, noté que presionar el botón X rojo en realidad no cierra la aplicación, lo que significa que el visor de teclado solo se activará una vez. Por lo tanto, debe crear un script para salir del programa.

Para solucionar este problema:


Cerrar Keyboard Viewer con otro atajo de teclado

  • Automatizador abierto
  • Elija Solicitud como tipo de documento
  • Añadir EjecutarAppleScript
  • Donde dice (*Tu guión va aquí*), reemplázalo conquit application "KeyboardViewer"
  • Compile y guarde como en documentos o en cualquier lugar que desee (lo moví a la misma ubicación que KeyboardViewer)
  • Abra la herramienta BetterTouch
  • Agregar atajo de teclado
  • Agregar acción predefinida >> Abrir aplicación/archivo/secuencia de comandos...
  • Localice el archivo de la aplicación que acaba de guardar

Ahora tiene una manera de salir del visor de teclado para siempre una vez que esté activado. Úselo en lugar del botón X rojo. Hasta que descubra por qué el visor del teclado no se cierra por completo cuando presiona el botón X, esta debería ser su solución.

EDITAR

¡He descubierto una manera de CAMBIAR el visor del teclado!


CAMBIAR EL VISOR DE TECLADO con un atajo de teclado

mismo proceso que antes, pero el código se cambia:

  • Automatizador abierto
  • Elija Solicitud como tipo de documento
  • Añadir EjecutarAppleScript
  • Donde dice (*Tu guión va aquí*), reemplázalo con
  if application "KeyboardViewer" is running then
      quit application "KeyboardViewer"
  else
      activate application "KeyboardViewer"
  end if
  • Compile y guarde como en documentos o en cualquier lugar que desee (lo moví a la misma ubicación que KeyboardViewer)
  • Abra la herramienta BetterTouch
  • Agregar atajo de teclado
  • Agregar acción predefinida >> Abrir aplicación/archivo/secuencia de comandos...
  • Localice el archivo de la aplicación que acaba de guardar

¡Ahora el Visor de teclado está alternado y ni siquiera necesita asignar múltiples accesos directos!


Enlace para AppleScript

Cargué la aplicación en línea para un acceso más rápido en lugar de realizar todos los pasos de codificación anteriores (simplemente active esta aplicación a través de BetterTouchTool). Sin embargo, dado que no soy un editor identificado, su sistema operativo puede bloquear la ejecución de esta aplicación, según sus preferencias de seguridad. Entonces, si prefiere no ejecutar aplicaciones de editores no identificados, simplemente siga los pasos anteriores para crear su propia aplicación.

Enlace al archivo: https://www.box.com/s/e2461c91e30e0af025e7


Espero que ayude a alguien como me ayudó a mí :)

¡¡fantástico!! Pensé que agregar la aplicación keyboardViewer directamente a mi índice de la barra de inicio sería un buen sustituto para mis propósitos, ¡pero no hay opción para cerrar kbv una vez que se está ejecutando! entonces, no puedes invocarlo por segunda vez, raro. de todos modos, ¡tu script funciona de maravilla! (Tuve que guardarlo como un script/ejecutarlo solo para que me funcionara). ¡Tx!
@memeLab Me alegro de que te haya funcionado :)
Este es el enfoque que tuve que tomar para obtener el comportamiento que quería. Gracias por la respuesta. Me sorprende hasta el día de hoy que BTT todavía no tiene una acción integrada que ofrezca capacidades de alternancia. Siempre tengo que hacer una secuencia de comandos como esta o alguna cosa rara/pirata con una variable almacenada para lograr la funcionalidad de alternar usando el mismo atajo de teclado.

Me alegro de haber encontrado este hilo. Basado en las respuestas anteriores, hice un script de extensión Alfred que alterna el Visor de teclado.

https://dl.dropbox.com/u/29440342/linkedFiles/Keyboard%20Viewer.alfredextension

Proporciona una palabra clave alfred "kv" que activa y desactiva Keyboard Viewer, ejecutando el siguiente applescript:

-- adapted from http://apple.stackexchange.com/a/62532
if application "KeyboardViewer" is running then
    quit application "KeyboardViewer"
else
    activate application "KeyboardViewer"
end if

(*
-- adapted from http://apple.stackexchange.com/a/59986
tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 where description is "text input") of menu bar 1
        click
        click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
    end tell
end tell
*)
-- icon ripped from osx /System/Library/PreferencePanes Keyboard.prefPane/Contents/Resources/Keyboard.icns

Dejé una implementación alternativa comentada, en caso de que experimente problemas de rendimiento que estaba destinado a evitar.

Enlace roto. Serias tan amable de publicarlo de nuevo. Este es un flujo de trabajo de Alfred que usaría.
Aquí vamos, lo volví a implementar (y también agregué un atajo de teclado Cmd+Alt+Ctrl+Shift+K): packal.org/workflow/toggle-keyboard-viewer-0

El complemento Extra Scripts de Quicksilver ofrece esta funcionalidad al proporcionar Show Keyboard Viewer.scpt .

Además, cuando crea un Quicksilver Trigger para Show Keyboard Viewer.scpt con la acción Ejecutar , obtiene la tecla de acceso rápido global Keyboard Viewer.

Aquí está la fuente del script:

property theApplication : "KeyboardViewer"
property thePath : "/System/Library/Input Methods/KeyboardViewer.app"

set HFSPath to ((POSIX file thePath) as string)
tell application "System Events" to ¬
    set isRunning to 0 < (count (application processes whose name is theApplication))
if isRunning then
    tell application HFSPath to quit
else
    ignoring application responses
        tell application HFSPath to activate
    end ignoring
end if

Si KeyboardViewer se abre con un AppleScript o con openy la ventana principal está cerrada, el proceso de Keyboard Viewer permanece abierto y sigue usando aproximadamente 0-20% de CPU.

Por lo general, no me gusta instalar aplicaciones de terceros para cosas simples programables, pero esta es la excepción . :) Muchas gracias, trabajando como un encanto. ;)
Si desea evitar el software de terceros, acabo de publicar una respuesta que hará lo mismo con el software integrado.
sry mach, @CanuckSkier publicó una respuesta sobre lo que más me gusta, así que acepté su respuesta. +1 de todos modos para QuickSilver. ;)
Este script no me funciona en Catalina.

Está muerto en Catalina: ya no hay una aplicación llamada KeyboardViewer.

En su lugar, use las opciones de Accesibilidad en Preferencias del Sistema y desactive todo lo demás para que el atajo de opciones de Accesibilidad (⌘ + ⎇ + F5) solo active y desactive el Teclado de Accesibilidad. Por supuesto, si necesita las otras opciones y ver el teclado, está jodido. Gracias Manzana!!

Opciones de accesibilidad con solo Teclado seleccionado

Esto también funcionaría después de que se haya cerrado la ventana principal haciendo clic en el botón Cerrar:

if application "KeyboardViewer" is running then
    tell application "System Events" to number of windows of process "KeyboardViewer"
    if result is 0 then
        quit application "KeyboardViewer"
        delay 0.1
        launch application "KeyboardViewer"
    else
        quit application "KeyboardViewer"
    end if
else
    launch application "KeyboardViewer"
end if

Si Keyboard Viewer se abre con AppleScript o open -a KeyboardViewery la ventana principal está cerrada, el proceso permanece abierto y sigue usando alrededor de 0-15% de CPU. No sucede cuando se selecciona Mostrar visor de teclado en el menú de entrada. Entonces, una mejor opción podría ser hacer clic en el elemento del menú:

tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 where description is "text input") of menu bar 1
        click
        click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
    end tell
end tell

Ambos scripts requieren acceso para que los dispositivos de asistencia estén habilitados en el panel de preferencias de accesibilidad.

La respuesta seleccionada no funciona en Catalina. Este hace:

activate application "System Preferences"
tell application "System Preferences"
    reveal anchor "Virtual_Keyboard" in pane id "com.apple.preference.universalaccess"
end tell

tell application "System Events"
    tell process "System Preferences"
        delay 1
        set theCheckbox to checkbox "Enable Accessibility Keyboard" of tab group 1 of group 1 of window 1
        if (value of theCheckbox as boolean) then
            click theCheckbox
            key code 36 -- Handle the confirmation dialog
        else
            click theCheckbox
        end if
        delay 1
    end tell
end tell
tell application "System Preferences" to quit
Usando Keyboard Maestro, el visor del teclado se puede alternar automatizando un clic en el elemento del menú. Esto salta el panel de control y es mucho más rápido.

No es un atajo de un solo trazo, pero una solución "sin mouse" es Fn+ Ctrl+ F8para establecer el enfoque en los íconos del " Menú de estado " en el lado derecho de la barra de menú. ( Sección 4 )

ingrese la descripción de la imagen aquí

Las flechas lo llevarán al ícono de Preferencias de teclado y las opciones Mostrar/Ocultar. Cuando ingrese Fn+ Ctrl+ F8, se resaltará el ícono en el extremo izquierdo de los íconos del "Menú de estado" que se encuentran en la mitad derecha de la barra de menú. Una vez que esté seleccionado, utilice Right Arrow →para navegar hasta el que desee. Utilice Down Arrow ↓para abrir el menú y seleccione la opción que desee. Tenga en cuenta que la Optiontecla habilitará diferentes opciones de menú en algunos de los "menús de estado".

ingrese la descripción de la imagen aquí

Cabe destacar que Fn++ Ctrlactivará F2el ícono del menú de Apple  en el lado izquierdo. Desde allí Right Arrow →, le dará acceso al menú de la aplicación. Estas opciones están disponibles en Preferencias del sistema >> Teclado >> Accesos directos::Teclado:

ingrese la descripción de la imagen aquí

Dependiendo de cómo haya configurado sus teclas de función, Fnes opcional.

ingrese la descripción de la imagen aquí

En macOS Sierra también puedes usar Siri para ayudarte con esto. Invoque a Siri con el atajo de teclado que elija en Preferencias del sistema >> Siri::Atajo de teclado, por ejemplo Option+Spacebar

ingrese la descripción de la imagen aquí

...luego diga "Activar el visor de teclado"

ingrese la descripción de la imagen aquí

...y voilá:

ingrese la descripción de la imagen aquí

Desafortunadamente, Siri no cerrará Keyboard Viewer, ni tampoco Command⌘+w

puedes hacer todo por Automator:

  1. abre Automator y selecciona "Aplicación"
  2. en la parte superior de la Biblioteca, busque "Iniciar aplicación", haga doble clic en ella
  3. elija "otro" y navegue hasta el archivo KeyboardViewer en /Sistema/Biblioteca/Métodos de entrada
  4. Guardar con un nombre como "teclado de inicio". Pruébalo.

la siguiente parte es cerrar el teclado:

  1. abre Automator y selecciona "Aplicación"
  2. en la parte superior de la biblioteca, busque "Salir de la aplicación", haga doble clic en ella
  3. elija "otro" y navegue hasta el archivo KeyboardViewer en /Sistema/Biblioteca/Métodos de entrada

  4. Guardar con un nombre como "salir del teclado". Pruébalo.

ahora tendrá dos archivos, uno para abrir y otro para cerrar.

¡todo lo que necesita es asociar los botones de su mouse para iniciar estos dos archivos!

por ejemplo, estoy usando Microsoft Bluetooth Notebook Mouse 5000 y

funciona muy bien para mí en 10.9.1

Monitor de actividad, KeyboardViewer.app se inicia desde

Ubicación del buscador: /System/Library/Input Methods/KeyboardViewer.app .

Uso normal: abra desde la barra de menú , cierre desde el mouse para ver los botones de la ventana donde se puede hacer clic en el botón de cierre (x) . Para habilitar el panel Barra de menú , Preferencias del sistema , Teclado , pestaña Teclado, seleccione Mostrar visores de teclado y emoji en la barra de menú .

El subprograma KeyboardViewer exhibe comportamientos restrictivos.

  1. La ventana del applet no responde a ⌘-Q , ⌘-W .
  2. Curiosamente, cuando se abre desde la carpeta Métodos de entrada , el Monitor de actividad muestra que el subprograma sigue ejecutándose después de que se cierra la ventana.
  3. Automator AppleScript que se muestra a continuación se ejecuta lentamente en segundo plano, los servicios de teclado tardan unos segundos en registrar las acciones de apertura y cierre en el Monitor de actividad.
  4. El script de método abreviado de teclado que se muestra a continuación se ejecuta sin errores, pero el sistema parece ignorarlo.
  5. La aplicación para salir de Sierra Automator no cerrará KeyboardViewer.app

El siguiente script de Automator se puede guardar como una aplicación para abrir y cerrar KeyboardViewer.app con un solo clic (el Monitor de actividad también muestra esta actividad de abrir y cerrar), y funciona bien cuando se coloca en el Dock.

Automator: Nuevo , Aplicación , Ejecutar AppleScript , guardar este script

-- see above post, Render
    on run {input, parameters}
        if application "KeyboardViewer" is running then
            quit application "KeyboardViewer"
        else 
            activate application "KeyboardViewer"
        end if
        return input
    end run
-- icon /System/Library/PreferencePanes Keyboard.prefPane/Contents/Resources/Keyboard.icns

Desafortunadamente, esto no agrega un atajo de teclado. Sin embargo, ofrece una solución alternativa con un solo clic. Puede haber alguna forma de agregar un atajo de teclado usando Automator. Un script de acceso directo general se parece a esto (pero no estoy seguro de cómo incorporarlo).

tell application "System Events"
    set application "KeyboardViewer" to keystroke "K" using control down
end tell

(macOS Sierra 10.12.6 en MP 6,1)

No es un atajo, pero funciona para mí. Primero haga clic en Mostrar visor de teclado. Luego cuando vas con el mouse a la esquina, se muestra un pequeño triangulo. Cuando esté listo, el visor del teclado se ocultará. El siguiente que está mostrando.

Aquí hay un pequeño video al respecto: https://dai.ly/x7t7x60

El objetivo de esta pregunta es cómo hacerlo sin el mouse.