Basculer vers une source d'entrée spécifique

23

Sous Mac OS X, il existe des raccourcis clavier pour basculer entre les sources d'entrée activées.

texte alternatif

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

Nikem
la source
La disposition du clavier et la langue de l'interface sont indépendantes. Et puisque le langage d'interface ne s'applique qu'après le redémarrage d'un programme, tout ce que vous gagnez par un raccourci serait annulé par la nécessité de redémarrer les applications de toute façon.
Daniel Beck
Je ne souhaite pas changer de langue d'interface. Seules les langues d'entrée sont intéressantes.
Nikem
J'ai rationalisé et clarifié votre question. Veuillez revenir si vous pensez que j'ai fait quelque chose de mal (je suis nouveau dans ce domaine).
Daniel Beck

Réponses:

7

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

  • Activez la prise en charge des appareils et accessoires fonctionnels dans les Préférences Système »Accès universel ,
  • et afficher le menu Sources d'entrée dans la barre de menu dans Préférences Système »Langue et texte .
  • Assurez-vous que le raccourci Ctrl-F8est défini pour Déplacer le focus vers les menus d'état dans Préférences Système »Clavier» Raccourcis clavier »Saisie 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 le faisant glisser tout en le maintenant Cmdenfoncé.

Utilisez AppleScript Editoret é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 des touches différentes ou attribuer quelque chose de différent Ctrl-F8, remplacez-les par les codes de touche ici . Vous pouvez également déplacer le menu Sources d'entrée de sa position la plus à gauche en insérant quelques pressions sur la flèche droite .

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

Daniel Beck
la source
1
@Nikem Cela a-t-il fonctionné?
Daniel Beck
1
Oui, ça a marché.
Nikem
1
Anda, Daniel, bien que j'aie choisi une autre solution, merci quand même de m'avoir présenté Action Script and Services :)
Nikem
@Nikem Vous êtes les bienvenus. Veuillez voter pour ma réponse en cliquant sur le "triangle de flèche vers le haut" à côté si vous trouvez cette réponse utile. Vous pouvez également accepter une réponse (en indiquant que c'est la seule réponse que vous préférez et considérer que votre problème est résolu) en cliquant sur la coche à côté. Soit dit en passant, ActionScript est Adobe, c'est AppleScript.
Daniel Beck
@Daniel En fait, je ne sais pas quelle réponse recommander. J'ai choisi le mien, mais le vôtre est plus largement utilisable ...
Nikem
12

J'ai trouvé une solution un peu plus agréable dans AppleScript, étant donné que vous connaissez le nom de la disposition du clavier vers laquelle vous souhaitez basculer. Créez une fonction comme celle-ci:

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

puis appelez-le par

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

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

Asmus
la source
Certainement mieux que le mien. Je devrais vraiment apprendre correctement mon AppleScript.
Daniel Beck
cela a fonctionné parfaitement pendant de nombreuses années, mais avec Catalina, il semble que le "texte d'entrée" ne soit plus accessible dans la barre de menu
Frank Mittelbach
6

Une option serait de télécharger changeInput et d' assigner des raccourcis aux commandes shell comme changeInput U.S..

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 d'entrée dans EventViewer.app. Sans, | ModifierFlag::NONEpar exemple, le premier paramètre s'appliquerait également à l'option-commande-E. Voir la source pour les valeurs de code clé et les paramètres prédéfinis .

Lri
la source
4

Je sais que c'est une vieille question. Mais même fin 2016, je n'ai toujours pas trouvé de solution simple et agréable. Par conséquent, j'ai fait des raccourcis IMES , des travaux sur Sierra. Vous pouvez attribuer un raccourci personnalisé pour toute méthode de saisie spécifique. Veuillez essayer. Et si vous trouvez des bugs, je serais ravi de vous aider.

En outre, Karabiner (connu sous le nom de 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.

rock9c
la source
Merci pour les raccourcis IMES! C'est très gentil. Je paierais volontiers 5 $ ou plus si vous ajoutiez des icônes à la barre de menus pour afficher la langue active (donc je n'aurais pas besoin d'avoir les DEUX raccourcis IME et l'icône de l'application dans ma barre de menus qui prennent de la place). J'aimerais également pouvoir personnaliser l'icône utilisée - par exemple, je veux utiliser l'entrée canadienne française parce qu'elle est plus proche de QWERTY américain, mais je veux voir un drapeau français parce qu'un drapeau canadien ne symbolise pas «français» pour moi. Ces choses le rendraient génial!
iconoclaste du
Un mot d'avertissement: si vous n'avez pas déjà téléchargé IMEShortcuts dans le passé (avant que l'enregistrement de domaine n'ait expiré et ait été remplacé par une page squatter avec un malware d'extension chrome), n'attrapez rien de rockcell.com tant que cela n'a pas été résolu.
ecmanaut
1

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, il permet une prise en charge, non exhaustive, du changement de langue. Nous avons donc une configuration personnalisée, il fait ce que je veux.

Inconvénients: - application tierce - prise en charge linguistique limitée pour l'instant

Avantages: - Conceptuellement un peu plus agréable que l'exécution d'un script sur l'interface utilisateur

Nikem
la source
Je n'ai rien trouvé sur l'utilisation flexible des sources d'entrée sur le site Web, seulement quelques actions codées en dur liées au russe / anglais. Peux-tu élaborer?
Daniel Beck
Ce n'est pas flexible. Il se trouve qu'il prend en charge le passage à l'anglais et au russe (et maintenant l'estonien), qui sont les langues dont j'avais besoin. Et il vous permet de mapper des combinaisons de touches arbitraires à ces actions. Passer à la langue dans mon cas.
Nikem
J'ai du mal à trouver comment mettre cela en place avec Karabiner.
Ivan Balashov
1

Sur AppleScript, vous devez uniquement prendre cmd + "espace" (ou autre chose, ce que vous modifiez la source du clavier).

Et tout ce dont vous avez besoin:

    key code 49 using command down

49 - code du bouton «espace» en ASCII pour AppleScript.

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

Ivan Trubnikov
la source
1

Trouvé kawa - application assez simple pour répondre exactement à vos besoins. Configurez des raccourcis pour passer directement à la source d'entrée requise.

qwad1000
la source
1
Bienvenue dans Super User. Veuillez lire Comment recommander un logiciel, puis modifiez votre réponse pour inclure au moins les informations minimales requises (les éléments en gras ). Les publications sans ces informations peuvent être supprimées. Merci d'avoir contribué.
Je dis Réintégrer Monica le
0

Ce lien a une vidéo sur la façon de le faire. Il a déjà un hotcake avec "commande + espace", mais le raccourci clavier du projecteur est également "commande + espace". Spotlight remplace le raccourci clavier afin que le changement de langue ne se produise pas. La vidéo dans le lien vous montrera comment modifier la touche de raccourci afin de pouvoir basculer la touche de raccourci.

Bonne chance,

David
la source
1
Il sait déjà basculer entre les langues, il veut passer à une langue spécifique , car il en a probablement plus de 2 activées.
Daniel Beck
Oui, exactement comme Daniel l'a dit. J'ai 3 langues d'entrée et je dois sélectionner une langue spécifique.
Nikem
Désolé ... Je dois avoir mal compris la question. Je pensais que vous essayiez de trouver un moyen de basculer entre les langues avec un raccourci clavier.
David