Zu einer bestimmten Eingangsquelle wechseln

23

In Mac OS X gibt es Tastenkombinationen, mit denen Sie zwischen aktivierten Eingangsquellen wechseln können.

Alt-Text

Kann man zu einer bestimmten Sprache wechseln ? Wenn Sie also drei Eingabemethoden haben, können Sie drei Abkürzungen verwenden: Ctrl-1für Englisch, Ctrl-2für Spanisch und Ctrl-3für Russisch.

Nikem
quelle
Tastaturlayout und Sprache der Benutzeroberfläche sind unabhängig. Und da die Sprache der Benutzeroberfläche erst nach dem Neustart eines Programms angewendet wird, wird alles, was Sie durch eine Verknüpfung erhalten, durch die Anforderung, Anwendungen trotzdem neu zu starten, zunichte gemacht.
Daniel Beck
Ich habe kein Interesse daran, die Sprache der Benutzeroberfläche zu ändern. Nur Eingabesprachen sind von Interesse.
Nikem
Ich habe Ihre Frage gestrafft und geklärt. Bitte kehren Sie zurück, wenn Sie glauben, dass ich etwas falsch gemacht habe (ich bin neu darin).
Daniel Beck

Antworten:

7

Ich präsentiere Ihnen die hässlichste "Lösung":

  • Aktivieren Sie die Unterstützung für Hilfsgeräte in den Systemeinstellungen »Universal Access .
  • und Anzeigen des Menüs Eingabequellen in der Menüleiste unter Systemeinstellungen »Sprache und Text .
  • Stellen Sie sicher , dass die Abkürzung Ctrl-F8für definiert verschieben den Fokus auf Statusmenüs in den Systemeinstellungen »Tastatur» Tastenkombinationen »Tastatur & Texteingabe .
  • Stellen Sie sicher, dass das Menü Eingabequellen das Menüelement ganz links ist, das durch Ziehen bei gedrückter Maustaste verschoben werden kann Cmd.

Verwenden AppleScript Editorund schreiben Sie drei Skripte mit jeweils folgendem Code:

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

Speichern Sie einmal für jede Sprache und ändern Sie den Namen der Sprache. Wenn Sie andere Tasten drücken oder etwas anderes zuweisen möchten Ctrl-F8, ersetzen Sie diese durch die hier angegebenen Tastencodes . Sie können das Menü "Eingabequellen" auch ganz nach links verschieben, indem Sie einige Pfeiltasten nach rechts drücken.

Rufen Sie Skripte auf, wie Sie möchten, z. B. verwenden Sie Ihren Anwendungsstarter (Quicksilver, Launchbar usw.), oder binden Sie sie mit Automator in Dienste ein, und weisen Sie ihnen Tastaturbefehle unter Systemeinstellungen »Tastatur» Tastaturbefehle »Dienste zu .

Daniel Beck
quelle
1
@Nikem Hat es geklappt?
Daniel Beck
1
Ja, es hat funktioniert.
Nikem
1
Anda, Daniel, obwohl ich eine andere Lösung gewählt habe, danke ich Ihnen trotzdem, dass Sie mir Action Script and Services vorgestellt haben :)
Nikem
@ Nikem Gern geschehen. Bitte stimmen Sie meine Antwort ab, indem Sie auf das "Pfeil-nach-oben-Dreieck" daneben klicken, wenn Sie diese Antwort nützlich finden. Sie können auch eine Antwort akzeptieren (dies ist die Antwort, die Ihnen am besten gefällt und die Sie als gelöst betrachten), indem Sie auf das Häkchen daneben klicken. ActionScript ist übrigens Adobe, das ist AppleScript.
Daniel Beck
@ Daniel Tatsächlich weiß ich nicht, welche Antwort ich empfehlen soll. Ich habe meins gewählt, aber deins ist allgemeiner verwendbar ...
Nikem
12

Ich habe mir in AppleScript eine etwas schönere Lösung ausgedacht, vorausgesetzt, Sie kennen den Namen des Tastaturlayouts, zu dem Sie wechseln möchten. Erstellen Sie eine Funktion wie diese:

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

und rufen Sie es dann durch

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

Beachten Sie, dass die Namen der Tastaturlayouts lokalisiert sind, dh auf einem deutschen System müsste das obige Beispiel "Englisch" und "Deutsch" heißen.

Asmus
quelle
Auf jeden Fall schöner als meine. Ich sollte mein AppleScript wirklich richtig lernen.
Daniel Beck
das hat viele Jahre perfekt geklappt, aber mit Catalina scheint es, dass "Eingabetext" in der Menüleiste nicht mehr verfügbar ist
Frank Mittelbach
6

Eine Möglichkeit wäre, changeInput herunterzuladen und Shell-Befehlen wie zuzuweisenchangeInput U.S. .

Sie können auch KeyRemap4MacBook verwenden:

<?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>

Siehe die private.xml-Dokumentation .

VK_CHANGE_INPUTSOURCE_ENGLISH ist in vkchangeinputsourcedef.xml definiert . Sie können die IDs der Eingabequellen in EventViewer.app anzeigen. Ohne | ModifierFlag::NONEzum Beispiel würde die erste Einstellung auch für Option-Befehl-E gelten. In der Quelle finden Sie die wichtigsten Codewerte und vordefinierten Einstellungen .

Lri
quelle
4

Ich weiß, dass es eine alte Frage ist. Aber auch Ende 2016 habe ich noch keine einfache und schöne Lösung gefunden. Deshalb habe ich IMEShortcuts gemacht , arbeitet an Sierra. Sie können für jede bestimmte Eingabemethode eine benutzerdefinierte Verknüpfung zuweisen. Bitte probieren Sie es aus. Und wenn ihr Fehler findet, würde ich gerne helfen.

Auch Karabiner (bekannt als KeyRemap4MacBook) ist eine große Tastatur Customizer for Mac. Aber es ist ein bisschen kompliziert und momentan in Sierra kaputt. Wenn Sie Yosemite oder El Capitan verwenden, ist dies eine weitere gute Wahl.

rock9c
quelle
Danke für IMEShortcuts! Es ist sehr nett. Ich würde gerne 5 US-Dollar dafür bezahlen, wenn Sie der Menüleiste Symbole hinzufügen, um die aktive Sprache anzuzeigen (daher müssten BEIDE IMEshortcuts und das App-Symbol in meiner Menüleiste keinen Platz einnehmen). Ich möchte auch in der Lage sein, das verwendete Symbol anzupassen - zum Beispiel möchte ich die kanadische französische Eingabe verwenden, weil sie näher an der US-amerikanischen QWERTZ liegt, aber ich möchte eine französische Flagge sehen, weil eine kanadische Flagge nicht "französisch" bedeutet mich. Diese Dinge würden es großartig machen!
Iconoclast
Hinweis: Wenn Sie IMEShortcuts in der Vergangenheit noch nicht heruntergeladen haben (bevor die Domainregistrierung abgelaufen ist und durch eine Squatter-Seite mit Chrome-Erweiterungs-Malware ersetzt wurde), holen Sie sich nichts von rockcell.com, bis dies behoben wurde.
ecmanaut
1

Ich habe eine andere Lösung, die mich am meisten befriedigt hat. KeyRemap4MacBook ist eine Anwendung, mit der Sie Ihre Tastaturtasten neu zuordnen können. Unter anderem werden einige, überhaupt nicht erschöpfende Maßnahmen zur Unterstützung des Sprachwechsels ergriffen. Wir haben also eine benutzerdefinierte Konfiguration, die genau das macht, was ich will.

Nachteile: - Drittanbieteranwendung - Derzeit nur eingeschränkte Sprachunterstützung

Vorteile: - Konzeptionell etwas besser als das Ausführen von Skripten auf der Benutzeroberfläche

Nikem
quelle
Ich habe nichts im Zusammenhang mit der flexiblen Verwendung von Eingabequellen auf der Website gefunden, nur einige hartkodierte Aktionen im Zusammenhang mit Russisch / Englisch. Können Sie näher darauf eingehen?
Daniel Beck
Es ist nicht flexibel. Es kommt einfach vor, dass es das Umschalten auf Englisch und Russisch (und jetzt auf Estnisch) unterstützt. Das sind die Sprachen, die ich brauchte. Außerdem können Sie diesen Aktionen beliebige Tastenkombinationen zuordnen. In meinem Fall zur Sprache wechseln.
Nikem
Es fällt mir schwer zu finden, wie ich das mit Karabiner einrichten kann.
Ivan
1

In AppleScript dürfen Sie nur cmd + "space" (oder etwas anderes, was Sie als Tastaturquelle ändern) verwenden.

Und alles was Sie brauchen:

    key code 49 using command down

49 - Code der Leertaste in ASCII für AppleScript.

PS: Vergessen Sie nicht, in den Systemeinstellungen auf Ihr AppleScript-Dienstprogramm zuzugreifen.

Ivan Trubnikov
quelle
1

Found Kawa - ganz einfache App, um genau Ihre Bedürfnisse zu erfüllen. Richten Sie Verknüpfungen ein, um direkt zur gewünschten Eingangsquelle zu wechseln.

qwad1000
quelle
1
Willkommen bei Super User. Bitte lesen Sie, wie Sie Software empfehlen, und bearbeiten Sie Ihre Antwort, um mindestens die erforderlichen Mindestinformationen (die fett gedruckten Elemente ) zu enthalten. Posts ohne diese Informationen können gelöscht werden. Vielen Dank für Ihren Beitrag.
Ich sage Reinstate Monica
0

Dieser Link enthält ein Video zur Vorgehensweise. Es gibt bereits einen Hotcake mit "Befehl + Leerzeichen", aber der Spotlight-Hotkey lautet auch "Befehl + Leerzeichen". Spotlight überschreibt den Hotkey, sodass die Sprachumschaltung nicht erfolgt. Das Video im Link zeigt Ihnen, wie Sie den Hotkey so ändern, dass Sie den Hotkey umschalten können.

Viel Glück,

David
quelle
1
Er weiß bereits, wie man zwischen Sprachen wechselt, er möchte zu einer bestimmten Sprache wechseln , da er wahrscheinlich mehr als 2 aktiviert hat.
Daniel Beck
Ja, genau wie Daniel gesagt hat. Ich habe 3 Eingabesprachen und muss eine bestimmte auswählen.
Nikem 20.12.10
Sorry ... Ich muss die Frage falsch verstanden haben. Ich dachte, Sie wollten mit einem Tastenkürzel zwischen den Sprachen wechseln.
David