Quiero usar cuatro idiomas en mi sistema OS X (inglés, español, chino y japonés) y sé que puedo cambiar el idioma con ⌘
+ Space
. Sin embargo, tengo un odio patológico por cambiar con él, ¡porque requiere que seleccione entre tantas, tantas opciones! También sé que puedo cambiarlo desde la barra de menú a la derecha de la barra, pero es mucho más repugnante que la solución ⌘
+ .Space
Así que prefiero cambiarlo con un atajo más fácil, como el siguiente:
⌘
cambia a inglés⌘
cambia a español⌘
+ izquierda ⌥
+ C
cambia a chino⌘
+ derecha ⌥
+ C
cambia a japonés.Traté de usar Karabiner
(el descendiente de KeyRemap4MacBook
), pero no funciona en el primer intento en chino, en el cual cuando cambio a chino, permanece en inglés (el ícono de fuente de entrada en la barra de menú cambia, pero el teclado no funciona ). Pero por alguna razón, si cambio de inglés a chino a inglés a chino (dos intentos), entonces el teclado chino finalmente funciona.
Así que no me gusta la idea de usar Karabiner
. Entonces, ¿cuál es la mejor manera de cambiar la fuente de entrada?
Me encontré con el mismo problema con el chino y el japonés. (El ícono en la barra de menú cambió, pero la fuente de entrada en realidad no cambió hasta que cambié a otra fuente de entrada y volví). Es un error conocido según una publicación en la lista de correo de Karabiner :
Es uno de los errores más molestos de OS X.
El cambio de las fuentes de entrada CJK directamente desde el programa no se maneja adecuadamente.
Por lo tanto, necesita los siguientes procedimientos.
Paso 1:
habilite "Seleccionar la siguiente fuente en el menú de entrada" (comando-opción-espacio) en Preferencias del sistema > Teclado > Accesos directos.Paso 2:
cambie la fuente de entrada enviando comando-opción-espacio.<autogen> __KeyToKey__ KeyCode::K, ModifierFlag::OPTION_L, KeyCode::VK_CHANGE_INPUTMODE_US, KeyCode::VK_WAIT_100MS, KeyCode::SPACE, ModifierFlag::COMMAND_R | ModifierFlag::OPTION_L, <!-- adjust wait for your machine --> KeyCode::VK_WAIT_10MS, KeyCode::VK_WAIT_10MS, KeyCode::VK_WAIT_10MS, KeyCode::SPACE, ModifierFlag::COMMAND_R | ModifierFlag::OPTION_L, <!-- adjust wait for your machine --> KeyCode::VK_WAIT_10MS, KeyCode::VK_WAIT_10MS, KeyCode::VK_WAIT_10MS, KeyCode::SPACE, ModifierFlag::COMMAND_R | ModifierFlag::OPTION_L, Option::NOREPEAT, </autogen>
changeinput se ve afectado por el mismo error.
Otra solución es simplemente cambiar a otra fuente de entrada y volver:
<root>
<vkchangeinputsourcedef>
<name>KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</name>
<inputsourceid_equal>com.apple.inputmethod.Kotoeri.Japanese</inputsourceid_equal>
</vkchangeinputsourcedef>
<vkchangeinputsourcedef>
<name>KeyCode::VK_CHANGE_INPUTSOURCE_SPANISH</name>
<inputsourceid_equal>com.apple.keylayout.Spanish</inputsourceid_equal>
</vkchangeinputsourcedef>
<vkchangeinputsourcedef>
<name>KeyCode::VK_CHANGE_INPUTSOURCE_US</name>
<inputsourceid_equal>com.apple.keylayout.US</inputsourceid_equal>
</vkchangeinputsourcedef>
<vkchangeinputsourcedef>
<name>KeyCode::VK_CHANGE_INPUTSOURCE_CHINESE</name>
<inputsourceid_equal>com.apple.inputmethod.TCIM.Pinyin</inputsourceid_equal>
</vkchangeinputsourcedef>
<item>
<name>inputsources</name>
<identifier>inputsources</identifier>
<autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_L, ModifierFlag::COMMAND_L | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_US, KeyCode::COMMAND_L</autogen>
<autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_R, ModifierFlag::COMMAND_R | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_SPANISH, KeyCode::COMMAND_R</autogen>
<autogen>__KeyToKey__ KeyCode::C, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_CHINESE, KeyCode::VK_CHANGE_INPUTSOURCE_US, KeyCode::VK_CHANGE_INPUTSOURCE_CHINESE</autogen>
<autogen>__KeyToKey__ KeyCode::C, ModifierFlag::OPTION_R | ModifierFlag::COMMAND_R | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA, KeyCode::VK_CHANGE_INPUTSOURCE_US, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</autogen>
</item>
</root>
⌘ es una tecla "muerta", una tecla modificadora. No hace nada por sí solo, aunque lleva la cuenta de cuántas veces se presiona, posiblemente por eso funciona en el segundo intento.
Más concretamente ... ¿por qué querría usar ⌘ para cambiar el idioma de entrada, eliminando así su uso para cualquier otra función?
¿Por qué no usar las teclas F, tal vez, en su lugar?
Una mejor solución podría ser una de estas...
https://superuser.com/questions/224161/switch-to-specific-input-source
⌘
(tecla de comando) con la tecla de manzana...?)⌘
es el más fácil de escribir, y el cambio entre diferentes idiomas ocurre con tanta frecuencia.Mira esto
cambie con una simple pulsación left_shift -> us, right_shift->ua
"rules": [
{
"description": "Right Shift to UA",
"manipulators": [
{
"from": {
"key_code": "right_shift",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "right_shift",
"lazy": true
}
],
"to_if_alone": [
{
"select_input_source": {
"language": "uk"
}
}
],
"type": "basic"
}
]
},
{
"description": "Right Shift to US",
"manipulators": [
{
"from": {
"key_code": "left_shift",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_shift",
"lazy": true
}
],
"to_if_alone": [
{
"select_input_source": {
"language": "en"
}
}
],
"type": "basic"
}
]
}
]
}
Blaszard
⌘
+W
para cerrar la ventana), que definitivamente no es lo que quiero... En cuanto a la primera solución, la intentaré más tarde.Blaszard
Blaszard
__KeyOverlaidModifier__
se indicó anteriormente, pero cambié la fuente de entrada japonesa y la española porque la fuente de entrada japonesa puede funcionar correctamente si la configura desde las preferencias de Karabiner en la sección de fuente de entrada japonesa. Gracias por la respuesta.