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

19

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

  • ¿Hay alguna manera 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 cambie a un idioma específico?
Hacer
fuente
La solución ideal sería asignar un atajo de teclado a un Apple Script que muestre el teclado.
duci9y

Respuestas:

15

Inicie Keyboard Viewer con un servicio (mejorado)

Puede iniciar el Visor de teclado con un atajo utilizando Automator y la funcionalidad de los Servicios de OS X.

El programa Keyboard Viewer vive 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 utilizando Automator para crear un servicio de iniciador 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 ninguna entrada 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 Atajos 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 rápido, 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 Acceso universal .
  • Al cerrar la ventana del Visor del teclado, en realidad no se cierra la aplicación, y como señala Lri, puede ser un poco engorroso de recursos, por lo que el repeatciclo verifica cada 5 segundos si el Visor del teclado tiene alguna ventana abierta y, si no, se cierra proceso.
  • Si está ejecutando un sistema operativo anterior a Lion, es posible que deba reemplazar las instancias de KeyboardViewercon KeyboardViewerServer. No tengo nada a mano antes de León para probar esto (si alguien más pudiera informar en los comentarios, sería genial.
  • Debido a que el script se repite hasta que se cierra el Visor de teclado, el icono del engranaje giratorio de Automator se mostrará en la barra de menú hasta que se cierre.
ladrones
fuente
¡SI! Esto es exactamente lo que estoy buscando. Estoy familiarizado con el automatizador y las secuencias de comandos de shell, solo necesito una pista. Muchas gracias ... :)
jm666
Actualicé esto usando un Applescript que ejecuta una verificación para ver si la ventana se ha cerrado, y si es 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í .
Robmathers
Con una modificación mínima, este script alterna el visor. Reemplace "end if" con "else" y mueva "else if" al final.
AdamAL
Gran solución Sin embargo, el elemento de menú "Mostrar visor de teclado" no sabe que el visor de teclado se está ejecutando. Entonces, este tipo de elemento rompe ese elemento del menú si usas ambos.
Matt Sephton el
/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?
Kerndog73
4

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

Además, cuando crea un disparador Quicksilver 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 guión:

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 se cierra la ventana principal, el proceso de Keyboard Viewer permanece abierto y sigue usando aproximadamente 0-20% de CPU.

mach
fuente
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. ;)
jm666
Si desea evitar el software de terceros, acabo de publicar una respuesta que hará lo mismo con el software incorporado.
Robmathers
sry mach, @CanuckSkier publicó una respuesta que me gusta más, así que acepté su respuesta. +1 de todos modos para QuickSilver. ;)
jm666
4

Me alegro de haber encontrado este hilo. Basado en las respuestas anteriores, hice un script de extensión de 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 applecript:

-- 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.

Dergachev
fuente
1
Enlace roto. ¿Serías tan amable de publicarlo de nuevo? Este es un flujo de trabajo de Alfred que usaría.
ddaa
Aquí vamos, lo reimplementé (y también agregué un atajo de teclado Cmd + Alt + Ctrl + Shift + K): packal.org/workflow/toggle-keyboard-viewer-0
Matt Sephton
3

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 el visor de teclado con un atajo (no es necesario para los dos anteriores)
  • También cargué el AppleScript por conveniencia

Plataforma: rMBP Mountain Lion OSX 10.8


Activar Keyboard Viewer mediante un atajo

  • Lanzar BetterTouchTool
  • Agregar atajo de teclado
  • Agregar acción predefinida >> Abrir aplicación / archivo / script ...
  • Navegue a Macintosh HD / Sistema / Biblioteca / Métodos de entrada /
  • Seleccione KeyboardViewer

Ahora tiene un método abreviado de teclado para activar el visor sin un script adicional.

SIN EMBARGO, noté que presionar el botón X rojo no cierra la aplicación, lo que significa que el visor del 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 la aplicación como tipo de documento
  • Añadir RunAppleScript
  • Donde dice (* Su script va aquí *), reemplácelo con quit application "KeyboardViewer"
  • Compila y guarda como en los documentos o donde quieras (lo moví a la misma ubicación que KeyboardViewer)
  • Abrir BetterTouchTool
  • Agregar atajo de teclado
  • Agregar acción predefinida >> Abrir aplicación / archivo / script ...
  • Localice el archivo de la aplicación que acaba de guardar

Ahora tiene una manera de salir del visor de KeyBoard para siempre una vez que esté activado. Úselo en lugar del botón X rojo. Hasta que descubra por qué el visor de 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 de teclado!


TOGGLE KEYBOARD VIEWER por un atajo de teclado

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

  • Automatizador abierto
  • Elija la aplicación como tipo de documento
  • Añadir RunAppleScript
  • Donde dice (* Su script va aquí *), reemplácelo con
  if application "KeyboardViewer" is running then
      quit application "KeyboardViewer"
  else
      activate application "KeyboardViewer"
  end if
  • Compila y guarda como en los documentos o donde quieras (lo moví a la misma ubicación que KeyboardViewer)
  • Abrir BetterTouchTool
  • Agregar atajo de teclado
  • Agregar acción predefinida >> Abrir aplicación / archivo / script ...
  • Localice el archivo de la aplicación que acaba de guardar

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


Enlace para AppleScript

Subí la aplicación en línea para un acceso más rápido en lugar de realizar todos los pasos de codificación anteriores (solo 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, dependiendo de 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 cualquiera como me ayudó :)

Hacer
fuente
¡¡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! así que no puedes invocarlo por segunda vez, raro. de todos modos su guión funciona de maravilla! (Tuve que guardarlo como un script / ejecutar solo para que funcione para mí). ¡Tx!
ptim
@memeLab Me alegro de que funcionó para ti :)
Render
3

Esto también funcionaría después de cerrar 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 KeyboardViewerse cierra la ventana principal, el proceso permanece abierto y sigue utilizando aproximadamente 0-15% de CPU. No sucede al seleccionar 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

Ambas secuencias de comandos requieren acceso para que los dispositivos de asistencia estén habilitados en el panel de preferencias de accesibilidad.

Lri
fuente
2

No es un atajo de un solo golpe, pero una solución "sin ratón" es Fn+ Ctrl+ F8para establecer el foco en los íconos de " 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 icono de Preferencias del teclado y a las opciones Mostrar / Ocultar. Cuando ingrese Fn+ Ctrl+, F8el ícono en el extremo izquierdo de los íconos de "Menú de estado" que se encuentran en la mitad derecha de la barra de menú se resaltará. Una vez que esté seleccionado, use Right Arrow →para navegar al que desee. Use Down Arrow ↓para abrir el menú y seleccione la opción que desee. Tenga en cuenta que la Optiontecla pondrá a disposición diferentes opciones de menú en algunos de los "menús de estado".

ingrese la descripción de la imagen aquí

Cabe destacar que Fn+ Ctrl+ F2activará el í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, la Fnopción es opcional.

ingrese la descripción de la imagen aquí

En macOS Sierra también puedes usar Siri para ayudar con esto. Invoque Siri con cualquier método abreviado de teclado que elija de Preferencias del sistema >> Siri :: Método abreviado de teclado, por ejemplo Option+Spacebar

ingrese la descripción de la imagen aquí

... luego diga "Encienda 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á el Visor de teclado, ni Command⌘+w

Señor kennedy
fuente
0

puedes hacer todo por Automator:

  1. abra Automator y seleccione "Aplicación"
  2. en la parte superior de la Biblioteca, busque "Iniciar aplicación", haga doble clic en él
  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. abra Automator y seleccione "Aplicación"
  2. en la parte superior de la Biblioteca, busque "Salir de la aplicación", haga doble clic en él
  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 del 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

Eugene Nogalsky
fuente
0

Monitor de actividad, KeyboardViewer.app se inicia desde

Ubicación del buscador: / Sistema / Biblioteca / Métodos de entrada / KeyboardViewer.app .

Uso normal: abrir desde la barra de menú , cerrar desde el mouse para ver los botones de la ventana donde se puede hacer clic en el botón (x) cerrar . 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 applet 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 applet sigue ejecutándose después de cerrar su ventana.
  3. El Automator AppleScript que se muestra a continuación se ejecuta lentamente en segundo plano, los servicios de teclado tardan segundos en registrar las acciones de apertura y cierre en el Monitor de actividad.
  4. La secuencia de comandos de acceso directo del teclado que se muestra a continuación se ejecuta sin errores, pero el sistema parece ignorar.
  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 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 está 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)

Mark Stewart
fuente