Wie ändere ich die Eingabequelle auf eine andere Sprache mit einer Tastenkombination (nur eine Tastenkombination)?

Ich möchte vier Sprachen in meinem OS X-System verwenden (Englisch, Spanisch, Chinesisch und Japanisch), und ich weiß, dass ich die Sprache mit + ändern kann Space. Ich habe jedoch einen pathologischen Hass darauf, damit zu wechseln, weil ich aus so, so vielen Möglichkeiten wählen muss! Ich weiß auch, dass ich es über die Menüleiste rechts von der Leiste ändern kann, aber es ist viel ekelhafter als die + Space-Lösung.

Also möchte ich es lieber mit einer einfacheren Verknüpfung ändern, wie die folgende:

  • Links wechselt zu Englisch
  • Rechts wechselt zu Spanisch
  • left + left + Cwechselt zu Chinesisch
  • rechts + rechts + Cwechselt zu Japanisch.

KarabinerIch habe versucht, (der Nachkomme von ) zu verwenden KeyRemap4MacBook, aber es funktioniert nicht beim ersten Versuch auf Chinesisch, auf dem, wenn ich auf Chinesisch umschalte, es Englisch bleibt (das Eingabequellensymbol in der Menüleiste ändert sich, aber die Tastatur funktioniert nicht ). Aber aus irgendwelchen Gründen, wenn ich von Englisch auf Chinesisch auf Englisch auf Chinesisch umschalte (zwei Versuche), dann funktioniert die chinesische Tastatur endlich.

Daher gefällt mir die Idee der Verwendung nicht Karabiner. Was ist also der bessere Weg, um die Eingangsquelle zu ändern?

Antworten (3)

Ich bin auf das gleiche Problem mit Chinesisch und Japanisch gestoßen. (Das Symbol in der Menüleiste hat sich geändert, aber die Eingangsquelle wurde nicht wirklich geändert, bis ich zu einer anderen Eingangsquelle und zurück gewechselt habe.) Laut einem Beitrag in Karabiners Mailingliste handelt es sich um einen bekannten Fehler :

Es ist einer der nervigsten Fehler von OS X.

Das Ändern von CJK-Eingabequellen direkt aus dem Programm wird nicht ordnungsgemäß gehandhabt.

Sie benötigen also die folgenden Verfahren.

Schritt 1:
Aktivieren Sie „Nächste Quelle im Eingabemenü auswählen“ (Befehl-Option-Leertaste) in den Systemeinstellungen > Tastatur > Verknüpfungen.

Schritt 2:
Ändern Sie die Eingabequelle, indem Sie Befehl-Option-Leertaste senden.

<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 ist von demselben Fehler betroffen.

Eine andere Problemumgehung besteht darin, einfach zu einer anderen Eingangsquelle und zurück zu wechseln:

<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>
Ihre zweite Lösung deaktiviert die Befehlstaste für alle anderen Tastenkombinationen (wie + Wzum Schließen des Fensters), was definitiv nicht das ist, was ich will ... Was die erste Lösung betrifft, werde ich es später versuchen.
Was Ihre erste Lösung betrifft, bin ich mir nicht sicher, warum Sie 160 ms warten und dreimal wechseln möchten ...
Hmmm ... Ich habe immer noch Probleme mit den __KeyOverlaidModifier__oben genannten, aber ich habe die japanische und die spanische Eingabequelle gewechselt, weil die japanische Eingabequelle richtig funktionieren kann, wenn Sie sie in den Einstellungen von Karabiner im Abschnitt "Japanische Eingabequelle" festlegen. Danke für die Antwort.

ist eine "tote" Taste, eine Zusatztaste. Es macht nichts von alleine, aber da es zählt, wie oft es gedrückt wird, wäre das möglicherweise der Grund, warum es beim zweiten Versuch funktioniert.

Genauer gesagt ... warum sollten Sie verwenden, um die Eingabesprache zu wechseln und damit die Verwendung für andere Funktionen zu eliminieren?

Warum nicht stattdessen F-Keys verwenden?

Eine bessere Lösung könnte eine von diesen sein ...

https://superuser.com/questions/224161/switch-to-specific-input-source

Ich bleibe nicht bei der Verwendung des Apfelschlüssels. (Vielleicht haben Sie (Befehlstaste) mit der Apfeltaste verwechselt ...?)
Nun, das liegt daran, dass es am einfachsten zu tippen ist und das Wechseln zwischen verschiedenen Sprachen so häufig vorkommt.
mein Punkt steht immer noch.

Überprüfen Sie dies

schalten Sie mit einfachem Druck 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"
                            }
                        ]
                    }
                ]
            }