Cambiar a fuente de entrada específica

23

En Mac OS X, hay atajos de teclado para cambiar entre las fuentes de entrada activadas.

texto alternativo

¿Es posible cambiar a un idioma específico? Entonces, si tiene 3 métodos de entrada, podría tener 3 accesos directos: Ctrl-1para inglés, Ctrl-2para español y Ctrl-3para ruso.

Nikem
fuente
La distribución del teclado y el idioma de la interfaz son independientes. Y dado que el idioma de la interfaz solo se aplica después de reiniciar un programa, cualquier cosa que gane con un acceso directo se negaría por el requisito de reiniciar las aplicaciones de todos modos.
Daniel Beck
No estoy interesado en cambiar los idiomas de la interfaz. Solo los idiomas de entrada son de interés.
Nikem
Agilicé y aclaré tu pregunta. Revierta si cree que hice algo mal (soy nuevo en esto).
Daniel Beck

Respuestas:

7

Te presento la "solución" más fea posible:

  • Habilite la compatibilidad con dispositivos de asistencia en Preferencias del sistema »Acceso universal ,
  • y mostrar el menú Fuentes de entrada en la barra de menú en Preferencias del sistema »Idioma y texto .
  • Asegúrese de que el atajo Ctrl-F8esté definido para Mover foco a menús de estado en Preferencias del sistema »Teclado» Atajos de teclado »Teclado y entrada de texto .
  • Asegúrese de que el menú Fuentes de entrada sea el elemento del menú situado más a la izquierda que se puede mover arrastrando mientras mantiene Cmdpresionado.

Use AppleScript Editory escriba tres scripts, cada uno de ellos con el siguiente código:

tell application "System Events"
    key code 100 using control down # press Ctrl-F8
    delay 0.5 # wait a bit, UI might be slow
    key code 125 # press down to open the menu
    keystroke "german" # name of your desired language, in my case tested using German
    key code 36 # press enter
end tell

Ahorre una vez para cada idioma, cambiando el nombre del idioma. Si desea presionar teclas diferentes o asignar algo diferente Ctrl-F8, sustitúyalo con los códigos de tecla aquí . También puede mover el menú Fuentes de entrada desde su posición más a la izquierda insertando algunas teclas de flecha derecha .

Invoca scripts como quieras, por ejemplo, utiliza el iniciador de tu aplicación (Quicksilver, Launchbar, etc.), o envuélvelos en Servicios usando Automator, y asígneles atajos de teclado en Preferencias del sistema »Teclado» Atajos de teclado »Servicios .

Daniel Beck
fuente
1
@Nikem ¿Funcionó?
Daniel Beck
1
Sí, funcionó.
Nikem
1
Anda, Daniel, aunque he elegido otra solución, gracias por presentarme a Action Script and Services :)
Nikem
@Nikem De nada. Por favor, vote mi respuesta haciendo clic en el "triángulo de flecha hacia arriba" que se encuentra al lado si encuentra útil esta respuesta. También puede aceptar una respuesta (indicando que es la respuesta que más le gusta y considerar su problema resuelto) haciendo clic en la marca de verificación al lado. Por cierto, ActionScript es Adobe, esto es AppleScript.
Daniel Beck
@Daniel De hecho, no sé qué respuesta recomendar.
Elegí el
12

Se me ocurrió una solución un poco mejor en AppleScript, dado que conoce el nombre de la distribución del teclado al que desea cambiar. Crea una función como esta:

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

y luego llamarlo por

 changeKeyboardLayout("English")
 changeKeyboardLayout("German")

Tenga en cuenta que los nombres de los diseños de teclado están localizados, es decir, en un sistema alemán, el ejemplo anterior necesitaría llamar "Englisch" y "Deutsch".

Asmus
fuente
Definitivamente mejor que el mío. Realmente debería aprender mi AppleScript correctamente.
Daniel Beck
esto funcionó perfectamente durante muchos años, pero con Catalina parece que ya no se puede acceder al "texto de entrada" en la barra de menú
Frank Mittelbach
6

Una opción sería descargar changeInput y asignar accesos directos a comandos de shell como changeInput U.S..

También puede usar KeyRemap4MacBook:

<?xml version="1.0"?>
<root>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</name>
    <inputsourceid_equal>com.apple.inputmethod.Kotoeri.Japanese</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <item>
    <name>change_inputsources</name>
    <identifier>change_inputsources</identifier>
    <autogen>__KeyToKey__ KeyCode::E, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_ENGLISH</autogen>
    <autogen>__KeyToKey__ KeyCode::H, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</autogen>
  </item>
</root>

Consulte la documentación de private.xml .

VK_CHANGE_INPUTSOURCE_ENGLISH se define en vkchangeinputsourcedef.xml . Puede ver los ID de las fuentes de entrada desde EventViewer.app. Sin, | ModifierFlag::NONEpor ejemplo, la primera configuración también se aplicaría a la opción-comando-E. Consulte la fuente para conocer los valores de los códigos clave y las configuraciones predefinidas .

Lri
fuente
4

Sé que es una vieja pregunta. Pero incluso a finales de 2016, todavía no encontré una solución simple y agradable. Por lo tanto, hice IMES shortcuts , trabaja en Sierra. Puede asignar un acceso directo personalizado para cualquier método de entrada específico. Por favor, inténtalo. Y si ustedes encuentran algún error, me encantaría ayudarlo.

Además, Karabiner (conocido como KeyRemap4MacBook) es un gran personalizador de teclado para Mac. Pero es un poco complicado y actualmente está roto en Sierra. Si usa Yosemite o El Capitan, sería otra buena opción.

rock9c
fuente
¡Gracias por los atajos de IMES! Es muy bonito. Con mucho gusto pagaría $ 5 más o menos si agregara íconos a la barra de menú para mostrar el lenguaje activo (por lo que no necesitaría tener AMBOS accesos directos a IME y el ícono de la aplicación en mi barra de menú ocupando espacio). También me gustaría poder personalizar el ícono utilizado; por ejemplo, quiero usar la entrada de francés canadiense porque está más cerca de QWERTY de EE. UU., Pero quiero ver una bandera francesa porque una bandera canadiense no simboliza "francés" yo. ¡Esas cosas lo harían increíble!
iconoclasta
Palabra de advertencia: si aún no ha descargado los accesos directos IMES en el pasado (antes de que el registro de dominio expirara y fuera reemplazado por una página de ocupantes ilegales con malware de extensión de Chrome), no tome nada de rockcell.com hasta que se haya resuelto.
ecmanaut
1

Tengo otra solución que me ha satisfecho más. KeyRemap4MacBook es una aplicación que le permite reasignar los botones del teclado. Entre otras cosas, permite un poco, en absoluto exhaustivo, soporte para el cambio de idioma. Entonces tenemos una configuración personalizada que hace lo que quiero.

Contras: - aplicación de terceros - solo soporte de idiomas limitado por ahora

Pros: - Conceptualmente un poco mejor que ejecutar script en la interfaz de usuario

Nikem
fuente
No encontré nada relacionado con el uso flexible de las fuentes de entrada en el sitio web, solo algunas acciones codificadas relacionadas con ruso / inglés. ¿Puedes elaborar?
Daniel Beck
No es flexible Simplemente sucede que admite cambiar a inglés y ruso (y ahora estonio), que son los idiomas que necesitaba. Y le permite asignar combinaciones de teclas arbitrarias a esas acciones. Cambiar a idioma en mi caso.
Nikem
Me cuesta encontrar la manera de configurar esto con Karabiner.
Ivan Balashov
1

En AppleScript solo debe tomar cmd + "espacio" (o algo más, lo que cambia la fuente del teclado).

Y todo lo que necesitas:

    key code 49 using command down

49 - código del botón 'espacio' en ASCII para AppleScript.

PD: no olvides obtener acceso para tu utilidad AppleScript en Preferencias del Sistema.

Ivan Trubnikov
fuente
1

Kawa encontrado - aplicación bastante simple para satisfacer exactamente sus necesidades. Configure accesos directos para cambiar directamente a la fuente de entrada necesaria.

qwad1000
fuente
1
Bienvenido a Super User. Lea Cómo recomendar software y luego edite su respuesta para incluir al menos la información mínima requerida (los elementos en negrita ). Las publicaciones sin esta información pueden estar sujetas a eliminación. Gracias por contribuir
Digo reinstalar a Mónica el
0

Este enlace tiene un video sobre cómo hacerlo. Ya tiene un hotcake con "comando + espacio", pero la tecla de acceso directo también es "comando + espacio". Spotlight pasa por alto la tecla de acceso rápido, por lo que no se produce el cambio de idioma. El video en el enlace le mostrará cómo cambiar la tecla de acceso rápido para que pueda alternar la tecla de acceso rápido.

Buena suerte,

David
fuente
1
Él ya sabe cómo cambiar entre idiomas, quiere cambiar a uno específico , ya que probablemente tiene más de 2 activados.
Daniel Beck
Sí, exactamente como dijo Daniel. Tengo 3 idiomas de entrada y necesito seleccionar uno específico.
Nikem
Lo siento ... Debo haber entendido mal la pregunta. Pensé que estabas tratando de hacer una forma de alternar entre los idiomas con una tecla de acceso rápido.
David