Passer à la source d'entrée spécifique

Dans Mac OS X, il existe un raccourci clavier pour basculer entre les sources d'entrée activées.

Texte alt

Est-il possible de passer à une langue spécifique? Donc, si vous avez 3 méthodes d'entrée, vous pouvez avoir 3 raccourcis: Ctrl-1 pour l'anglais, Ctrl-2 pour l'espagnol et Ctrl-3 pour le russe.

    Je vous présente, la solution la plus laide possible:

    • Activer le support pour les périphériques d'assistance dans les préférences système »Accès universel ,
    • Et afficher le menu Sources d'entrée dans la barre de menus dans Préférences système »Langue et texte .
    • Assurez-vous que le raccourci Ctrl-F8 est défini pour Déplacer le focus sur les menus d'état dans Préférences système »Clavier» Raccourcis clavier »Entrée clavier et texte .
    • Assurez-vous que le menu Sources d'entrée est l'élément de menu le plus à gauche qui peut être déplacé en faisant glisser tout en maintenant Cmd enfoncé.

    Utilisez AppleScript Editor et écrivez trois scripts, chacun d'eux avec le code suivant:

     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 

    Enregistrez une fois pour chaque langue, en changeant le nom de la langue. Si vous souhaitez appuyer sur différentes touches, ou affectez quelque chose de différent de Ctrl-F8 , remplacer par les codes clés ici . Vous pouvez également déplacer le menu Sources d'entrée de sa position de gauche en insérant quelques touches de flèche droite .

    Invoque les scripts comme vous le souhaitez, p.ex. utilisez votre lanceur d'applications (Quicksilver, Launchbar, etc.), ou les enveloppez dans les services à l'aide d'Automator, et attribuez-leur des raccourcis clavier dans les Préférences système »Clavier» Raccourcis clavier »Services .

    J'ai trouvé une solution plus agréable dans AppleScript, pourvu que vous connaissiez le nom de la mise en page du clavier à laquelle vous souhaitez passer. Créez une fonction comme ceci:

     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 

    Et ensuite l'appeler par

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

    Soyez conscient que les noms de Keyboard Layouts sont localisés, c'est-à-dire sur un système allemand, l'exemple ci-dessus devrait appeler "Englisch" et "Deutsch".

    Une option serait de télécharger la fonction ChangeInput et d' affecter des raccourcis aux commandes shell comme changeInput US .

    Vous pouvez également utiliser 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> 

    Voir la documentation private.xml .

    VK_CHANGE_INPUTSOURCE_ENGLISH est défini dans vkchangeinputsourcedef.xml . Vous pouvez voir les ID des sources de saisie depuis EventViewer.app. Sans | ModifierFlag::NONE | ModifierFlag::NONE par exemple, le premier paramètre s'appliquerait également à option-command-E. Voir la source pour les valeurs de code de clé et les paramètres prédéfinis .

    J'ai une autre solution qui m'a le plus satisfait. KeyRemap4MacBook est une application qui vous permet de remapper les boutons de votre clavier. Entre autres choses, cela permet à certains, pas exhaustifs, d'appuyer le changement de langue. Donc nous avons une configuration personnalisée, il fait ce que je veux.

    Inconvénients: – application de tiers – un soutien linguistique limité pour l'instant

    Avantages: – Conceptuellement un peu plus agréable que l'exécution du script sur UI

    Je sais que c'est une vieille question. Mais même à la fin de 2016, je n'ai toujours pas trouvé une solution simple et agréable. Par conséquent, j'ai fait IMEShortcuts , travaille sur Sierra. Vous pouvez attribuer un raccourci personnalisé pour toute méthode d'entrée spécifique. Donnez-lui un coup de feu. Et si vous trouvez des bugs, je serais heureux de vous aider.

    En outre, Karabiner (appelé KeyRemap4MacBook) est un excellent personnalisateur de clavier pour Mac. Mais c'est un peu compliqué et actuellement cassé sur Sierra. Si vous utilisez Yosemite ou El Capitan, ce serait un autre bon choix.

    Sur AppleScript, vous devez seulement prendre cmd + "espace" (ou quelque chose d'autre, ce que vous changez de source de clavier).

    Et tout ce dont vous avez besoin:

      key code 49 using command down 

    49 – code du bouton 'espace' dans ASCII pour AppleScript.

    PS: n'oubliez pas d'avoir accès à votre utilitaire AppleScript dans les Préférences Système.

    Ce lien comporte une vidéo sur la façon de le faire. Il a déjà un hotcake avec "command + space", mais la touche de raccourci est également "commande + espace". Survolez les over-riders la touche d'accès rapide, de sorte que l'interrupteur de langue ne se produit pas. La vidéo du lien vous montrera comment changer la touche d'accès rapide afin que vous puissiez basculer la touche d'accès rapide.

    Bonne chance,