¿Cambiar el idioma del teclado *manteniendo* presionado un botón?

En mi computadora con Linux, mi teclado cambia de inglés a serbio cuando presiono la tecla Bloq Mayús. Por ejemplo, para escribir č todo lo que tengo que hacer es mantener presionada la tecla Bloq Mayús y presionar la tecla donde está č en el teclado serbio (en este caso, la tecla es ; en el teclado inglés). Cuando suelto el bloqueo de mayúsculas, el teclado "vuelve a cambiar" a inglés, de modo que si presiono ; Yo obtengo ; como se desee. Súper útil.

¿Hay alguna manera de replicar este comportamiento en OS X?

Respuestas (4)

Puedes usar KeyRemap4MacBook :

<?xml version="1.0"?>
<root>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_SERBIAN</name>
    <inputsourceid_equal>com.apple.keylayout.Serbian</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <item>
    <name>test</name>
    <identifier>test</identifier>
    <autogen>__KeyToKey__ KeyCode::F1, KeyCode::VK_NONE, Option::KEYTOKEY_BEFORE_KEYDOWN, KeyCode::VK_CHANGE_INPUTMODE_SERBIAN, Option::KEYTOKEY_AFTER_KEYUP, KeyCode::VK_CHANGE_INPUTMODE_ENGLISH</autogen>
  </item>
</root>

VK_CHANGE_INPUTMODE_ENGLISH se define en inputsourcedef.xml . Puede ver los ID de las fuentes de entrada de EventViewer.app. El bloqueo de mayúsculas se puede reasignar a una tecla F con PCKeyboardHack .

En realidad, esto parece estar cerca de lo que quiero (aunque es un poco demasiado complicado para ser práctico).
El KeyRemap4MacBook es la forma de hacerlo, creo. Una solución similar con AutoHotKey funciona en Win 8 para mí.

Si tiene 10.7 Lion o más reciente, también puede presionar la tecla c hasta que muestre una lista de todos los personajes c con varias decoraciones.

¡Esto es increíble! ¡Ojalá pudiera +10! Gracias por mejorar mi vida.

Puede cambiar fácilmente del teclado serbio al teclado estadounidense o viceversa presionando Comando-Espacio . Para configurar esto:

Vaya a Preferencias del sistema... , Idioma y texto , Fuentes de entrada y seleccione los diseños de teclado serbio e inglés. Seleccione la casilla de verificación junto a Mostrar menú de entrada en la barra de menú . Asegúrese de que, en Accesos directos de fuente de entrada , Seleccione la fuente de entrada anterior: esté configurado en Comando-Espacio .

Esto es todo lo que necesitas hacer.

ingrese la descripción de la imagen aquí

Esto en realidad no es lo que estoy pidiendo. Sé que puede alternar hacia y desde un diseño de teclado. Lo que quiero es mantener Bloq Mayús como tecla modificadora. Por ejemplo, Shift modifica la letra presionada a mayúsculas. Quiero que Bloq Mayús modifique el teclado para que sea serbio, mientras dure la pulsación.
Puede definir una tecla modificadora distinta a Comando-Espacio haciendo clic en el botón Métodos abreviados de teclado en el cuadro de diálogo que se muestra arriba.

La tecla Alt le da acceso a una cantidad de caracteres no ascii que dependen del diseño que use.

En un teclado estadounidense estándar, al presionar Alt+barra inferior se crea un " ` " debajo del cual aparecerá la vocal que escribirá después: " à " si escribo Alt+barra inferior seguida de a.

En su caso, el diseño US Extended le dará acceso a todos los acentos que necesita usar en serbio. Por ejemplo, Alt+v seguido de c le dará č.

Debe mantener el Visor de teclado abierto para acostumbrarse a las diversas modificaciones posibles, pero una vez que obtenga el conjunto que se usa en su idioma, ya no lo necesitará.