Wie kann ich den Keyboard Viewer mit einer Tastenkombination ein- oder ausblenden?

Ich möchte den Keyboard Viewer über eine Verknüpfung ein- und ausblenden.

  • Gibt es eine Möglichkeit, den Keyboard Viewer über eine Tastenkombination anzuzeigen?
  • Gibt es eine Möglichkeit, den Keyboard Viewer automatisch anzuzeigen, wenn ich zu einer bestimmten Sprache wechsle?
Die ideale Lösung wäre, einem Apple Script eine Tastenkombination zuzuweisen, die die Tastatur anzeigt.
Ich habe diesen Weg in Monterey gefunden: Systemeinstellungen > Eingabehilfen > Tastatur > Viewer - aktivieren; Wählen Sie unter "Optionen..." einen HotCorner zum Ein-/Ausblenden und reduzieren Sie die Verweilzeit auf 0,25 Sek. Dann scheint es mit dem Mauszeiger in der Bildschirmecke gut genug zu funktionieren.

Antworten (11)

Keyboard Viewer mit einem Dienst starten (verbessert)

Sie können den Keyboard Viewer mit einer Verknüpfung starten, indem Sie Automator und die OS X-Dienste verwenden.

Das Keyboard Viewer-Programm befindet sich unter /System/Library/Input Methods/KeyboardViewer.app(in Versionen vor Lion möglicherweise unter /System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app). Sie öffnen es mit einem Hotkey, indem Sie Automator verwenden, um einen einfachen Launcher-Dienst zu erstellen.

  1. Öffnen Sie Automator und wählen Sie Service als Typ Ihres neuen Dokuments aus.
  2. Setzen Sie die Optionen (oben im Workflow-Bereich) auf „Der Dienst erhält in keiner Anwendung eine Eingabe “.
  3. Fügen Sie Ihrem Workflow die Aktion AppleScript ausführen hinzu und ersetzen Sie den Text durch die folgenden Zeilen:

    if application "KeyboardViewer" is running then
        quit application "KeyboardViewer"
    end if
    
    activate application "KeyboardViewer"
    
    -- wait until the window has been closed, then end the KeyboardViewer process
    set numberOfWindows to 1
    repeat until numberOfWindows = 0
        delay 5
        tell application "System Events"
            tell process "KeyboardViewer"
                set numberOfWindows to count windows
            end tell
        end tell
    end repeat
    quit application "KeyboardViewer"
    
  4. Speichern Sie unter einem Namen wie „Open Keyboard Viewer“ und öffnen Sie dann die Tastatureinstellungen auf der Registerkarte „Tastaturkürzel“. Wählen Sie im linken Bereich Dienste aus und scrollen Sie nach unten, wo Sie den Namen Ihres Dienstes im Abschnitt „Allgemein“ sehen sollten.
  5. Stellen Sie sicher, dass das Kontrollkästchen aktiviert ist, um es zu aktivieren, wählen Sie es dann aus und klicken Sie auf Verknüpfung hinzufügen , um einen Hotkey festzulegen.
  6. Öffnen Sie nach dem Festlegen des Hotkeys das Menü Dienste in einer beliebigen Anwendung (z. B. Finder > Dienste) und schließen Sie es dann. Aus irgendeinem Grund funktionierte mein Hotkey nicht, bis ich das tat.

Ein paar Anmerkungen:

  • Das Skript erfordert, dass Sie das Kontrollkästchen Zugriff für Hilfsgeräte aktivieren im Einstellungsbereich Universal Access aktivieren .
  • Das Schließen des Keyboard Viewer-Fensters beendet die Anwendung nicht wirklich, und wie Lri betont, kann es ein bisschen wie ein Ressourcenfresser sein, also repeatprüft die Schleife alle 5 Sekunden, ob Keyboard Viewer irgendwelche offenen Fenster hat, und wenn nicht, beendet sie das Prozess.
  • Wenn Sie ein Betriebssystem vor Lion ausführen, müssen Sie möglicherweiseKeyboardViewer die Instanzen von durch ersetzen KeyboardViewerServer. Ich habe nichts vor Lion zur Hand, um dies zu testen (wenn jemand anderes in den Kommentaren berichten könnte, wäre das großartig.
  • Da das Skript so lange wiederholt wird, bis der Keyboard Viewer geschlossen wird, wird das sich drehende Zahnradsymbol von Automator in der Menüleiste angezeigt, bis es geschlossen wird.
JAWOHL! Das ist genau das was ich suche. Ich bin mit Automator und Shell-Scripting vertraut, brauchte nur einen Hinweis. Danke sehr... :)
Ich habe dies mit einem Applescript aktualisiert, das überprüft, ob das Fenster geschlossen wurde, und den Vorgang in diesem Fall beendet, um Leistungseinbußen zu vermeiden. Jeder, der an der alten Bash-basierten Version interessiert ist, findet diese Überarbeitung hier .
Mit minimaler Änderung schaltet dieses Skript den Viewer um. Ersetzen Sie „end if“ durch „else“ und verschieben Sie „else if“ ans Ende.
Tolle Lösung. Der Menüpunkt „Tastaturanzeige anzeigen“ weiß jedoch nicht, dass die Tastaturanzeige läuft? Diese Art von Menüelement wird also unterbrochen, wenn Sie beide verwenden.
/System/Library/Input Methods/KeyboardViewer.appexistiert nicht auf Catalina. Ich habe alle Anwendungen geöffnet /System/Library/Input Methodsund keine von ihnen hat den Tastatur-Viewer geöffnet. Irgendwelche Ideen?
Irgendwelche Updates für den Monterey? Ich kann dort keine Lösung einrichten ... :(

Ich habe einen Weg durch BetterTouchTool gefunden, um Folgendes zu tun:

  • Aktivieren Sie den Keyboard Viewer über eine Verknüpfung
  • Schließen Sie den Keyboard Viewer über eine andere Verknüpfung
  • Schalten Sie den Tastatur-Viewer mit einer Tastenkombination um (die vorherigen beiden werden nicht benötigt)
  • Ich habe der Einfachheit halber auch das AppleScript hochgeladen

Plattform: rMBP Mountain Lion OSX 10.8


Aktivieren Sie den Keyboard Viewer über eine Verknüpfung

  • Starten Sie BetterTouchTool
  • Tastaturkürzel hinzufügen
  • Vordefinierte Aktion hinzufügen >> Anwendung/Datei/Skript öffnen...
  • Navigieren Sie zu Macintosh HD/System/Library/Input Methods/
  • Wählen Sie KeyboardViewer

Jetzt haben Sie eine Tastenkombination, um den Viewer ohne zusätzliches Skript zu aktivieren.

JEDOCH ist mir aufgefallen, dass das Drücken der roten X-Taste die Anwendung nicht wirklich beendet, was bedeutet, dass der Tastatur-Viewer nur einmal aktiviert wird. Sie müssen also ein Skript erstellen, um das Programm zu beenden.

So beheben Sie dieses Problem:


Schließen Sie den Keyboard Viewer über eine andere Tastenkombination

  • Automator öffnen
  • Wählen Sie als Dokumentart Bewerbung
  • Fügen Sie RunAppleScript hinzu
  • Wo es heißt (* Your script goes here *) , ersetzen Sie es durchquit application "KeyboardViewer"
  • Kompilieren und speichern Sie wie in Dokumenten oder wo immer Sie wollen (ich habe es an denselben Ort wie KeyboardViewer verschoben)
  • Öffnen Sie BetterTouchTool
  • Tastaturkürzel hinzufügen
  • Vordefinierte Aktion hinzufügen >> Anwendung/Datei/Skript öffnen...
  • Suchen Sie die soeben gespeicherte Anwendungsdatei

Sie haben jetzt eine Möglichkeit, den KeyBoard-Viewer endgültig zu beenden, sobald er aktiviert ist. Verwenden Sie es anstelle der roten X-Taste. Bis ich herausgefunden habe, warum der Tastatur-Viewer nicht vollständig beendet wird, wenn Sie die X-Taste drücken, sollte dies Ihre Lösung sein.

BEARBEITEN

Ich habe einen Weg gefunden, den Tastatur-Viewer umzuschalten !!


TOGGLE KEYBOARD VIEWER mit einem Tastenkürzel

Gleicher Vorgang wie zuvor, aber der Code wurde geändert:

  • Automator öffnen
  • Wählen Sie als Dokumentart Bewerbung
  • Fügen Sie RunAppleScript hinzu
  • Wo es heißt (* Your script goes here *) , ersetzen Sie es durch
  if application "KeyboardViewer" is running then
      quit application "KeyboardViewer"
  else
      activate application "KeyboardViewer"
  end if
  • Kompilieren und speichern Sie wie in Dokumenten oder wo immer Sie wollen (ich habe es an denselben Ort wie KeyboardViewer verschoben)
  • Öffnen Sie BetterTouchTool
  • Tastaturkürzel hinzufügen
  • Vordefinierte Aktion hinzufügen >> Anwendung/Datei/Skript öffnen...
  • Suchen Sie die soeben gespeicherte Anwendungsdatei

Jetzt ist die Tastaturanzeige umgeschaltet und Sie müssen nicht einmal mehrere Tastenkombinationen zuweisen!


Link für AppleScript

Ich habe die App für einen schnelleren Zugriff online hochgeladen, anstatt die gesamten obigen Codierungsschritte auszuführen (aktivieren Sie diese App einfach über BetterTouchTool). Da ich jedoch kein identifizierter Herausgeber bin, kann Ihr Betriebssystem die Ausführung dieser App je nach Ihren Sicherheitseinstellungen blockieren. Wenn Sie also lieber keine Apps von unbekannten Herausgebern ausführen möchten, folgen Sie einfach den obigen Schritten, um Ihre eigene App zu erstellen!

Link zur Datei: https://www.box.com/s/e2461c91e30e0af025e7


Hoffe, es hilft jemandem, da es mir geholfen hat :)

Fantastisch!! Ich dachte, das Hinzufügen der keyboardViewer-App direkt zu meinem Launchbar-Index wäre ein guter Ersatz für meine Zwecke, aber es gibt keine Möglichkeit, kbv zu schließen, sobald es läuft! Sie können es also kein zweites Mal aufrufen - seltsam. Wie auch immer, Ihr Skript funktioniert wunderbar! (Ich musste es nur als Skript speichern/ausführen, damit es für mich funktionierte.) Tx!
@memeLab Freut mich, dass es bei dir funktioniert hat :)
Das ist der Ansatz, den ich wählen musste, um das gewünschte Verhalten zu erzielen. Danke für die Antwort. Ich bin bis heute erstaunt, dass BTT immer noch keine eingebaute Aktion hat, die Umschaltfunktionen bietet. Ich muss immer ein Skript wie dieses oder ein abgefahrenes/hackiges Ding mit einer gespeicherten Variablen ausführen, um die Toggle-Funktionalität mit derselben Tastenkombination zu erreichen.

Gut, dass ich diesen Thread gefunden habe. Basierend auf den obigen Antworten habe ich ein Alfred-Erweiterungsskript erstellt, das den Keyboard Viewer umschaltet.

https://dl.dropbox.com/u/29440342/linkedFiles/Keyboard%20Viewer.alfredextension

Es bietet ein Alfred-Schlüsselwort "kv", das den Keyboard Viewer ein- und ausschaltet, indem das folgende Applescript ausgeführt wird:

-- adapted from http://apple.stackexchange.com/a/62532
if application "KeyboardViewer" is running then
    quit application "KeyboardViewer"
else
    activate application "KeyboardViewer"
end if

(*
-- adapted from http://apple.stackexchange.com/a/59986
tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 where description is "text input") of menu bar 1
        click
        click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
    end tell
end tell
*)
-- icon ripped from osx /System/Library/PreferencePanes Keyboard.prefPane/Contents/Resources/Keyboard.icns

Ich habe eine alternative Implementierung auskommentiert gelassen, falls ich Leistungsprobleme habe, die vermieden werden sollten.

Defekter Link. Wärst du so nett, es nochmal zu posten. Dies ist ein Alfred-Workflow, den ich verwenden würde.
Los geht's, ich habe es neu implementiert (und auch eine Tastenkombination Cmd+Alt+Ctrl+Shift+K hinzugefügt): packal.org/workflow/toggle-keyboard-viewer-0

Das Extra Scripts Plugin von Quicksilver bietet diese Funktionalität, indem es Show Keyboard Viewer.scpt bereitstellt .

Wenn Sie außerdem einen Quicksilver-Trigger für Show Keyboard Viewer.scpt mit der Aktion Run erstellen , erhalten Sie den globalen Keyboard Viewer-Hotkey.

Hier ist die Quelle des Skripts:

property theApplication : "KeyboardViewer"
property thePath : "/System/Library/Input Methods/KeyboardViewer.app"

set HFSPath to ((POSIX file thePath) as string)
tell application "System Events" to ¬
    set isRunning to 0 < (count (application processes whose name is theApplication))
if isRunning then
    tell application HFSPath to quit
else
    ignoring application responses
        tell application HFSPath to activate
    end ignoring
end if

Wenn KeyboardViewer mit einem AppleScript oder mit geöffnet openwird und das Hauptfenster geschlossen wird, bleibt der Keyboard Viewer-Prozess geöffnet und verbraucht weiterhin etwa 0-20 % CPU.

Ich mag es normalerweise nicht, Apps von Drittanbietern für einfache skriptfähige Dinge zu installieren, aber dies ist die Ausnahme . :) Vielen Dank, funktioniert wie ein Zauber. ;)
Wenn Sie Software von Drittanbietern vermeiden möchten, habe ich gerade eine Antwort gepostet, die dasselbe mit integrierter Software tut.
sry mach, @CanuckSkier hat eine Antwort gepostet, die mir mehr gefällt, also akzeptiere ich seine Antwort. +1 sowieso für das QuickSilver. ;)
Dieses Skript funktioniert bei mir auf Catalina nicht.

Es ist tot in Catalina - keine App namens KeyboardViewer mehr.

Verwenden Sie stattdessen die Barrierefreiheitsoptionen in den Systemeinstellungen und schalten Sie alles andere aus, sodass die Tastenkombination für Barrierefreiheitsoptionen (⌘ + ⎇ + F5) nur die Barrierefreiheitstastatur ein- und ausschaltet. Natürlich, wenn Sie die anderen Optionen benötigen und die Tastatur sehen möchten, sind Sie entbeint. Danke Apple!!

Zugänglichkeitsoptionen, bei denen nur die Tastatur ausgewählt ist

Dies würde auch funktionieren, nachdem das Hauptfenster durch Klicken auf die Schließen-Schaltfläche geschlossen wurde:

if application "KeyboardViewer" is running then
    tell application "System Events" to number of windows of process "KeyboardViewer"
    if result is 0 then
        quit application "KeyboardViewer"
        delay 0.1
        launch application "KeyboardViewer"
    else
        quit application "KeyboardViewer"
    end if
else
    launch application "KeyboardViewer"
end if

Wenn Keyboard Viewer mit AppleScript oder geöffnet open -a KeyboardViewerund das Hauptfenster geschlossen wird, bleibt der Prozess geöffnet und verbraucht weiterhin etwa 0-15 % CPU. Es passiert nicht, wenn Sie im Eingabemenü Show Keyboard Viewer auswählen. Eine bessere Option wäre also, auf den Menüpunkt zu klicken:

tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 where description is "text input") of menu bar 1
        click
        click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
    end tell
end tell

Beide Skripte erfordern den Zugriff auf Hilfsgeräte, die im Einstellungsbereich für die Barrierefreiheit aktiviert werden müssen.

Die ausgewählte Antwort funktioniert nicht auf Catalina. Dieser tut:

activate application "System Preferences"
tell application "System Preferences"
    reveal anchor "Virtual_Keyboard" in pane id "com.apple.preference.universalaccess"
end tell

tell application "System Events"
    tell process "System Preferences"
        delay 1
        set theCheckbox to checkbox "Enable Accessibility Keyboard" of tab group 1 of group 1 of window 1
        if (value of theCheckbox as boolean) then
            click theCheckbox
            key code 36 -- Handle the confirmation dialog
        else
            click theCheckbox
        end if
        delay 1
    end tell
end tell
tell application "System Preferences" to quit
Mit Keyboard Maestro kann der Tastatur-Viewer umgeschaltet werden, indem ein Klick auf das Menüelement automatisiert wird. Dies überspringt das Bedienfeld und ist viel schneller.

Es ist keine Tastenkombination mit einem Strich, sondern eine Lösung ohne Mausbewegung Fn+ Ctrl+ F8, um den Fokus auf die Symbole " Statusmenü " auf der rechten Seite der Menüleiste zu setzen. ( Abschnitt 4 )

Geben Sie hier die Bildbeschreibung ein

Die Pfeile führen Sie zum Symbol „Tastatureinstellungen“ und den Optionen „Anzeigen/Ausblenden“. Wenn Sie Fn+ Ctrl+ eingeben, wird F8das Symbol ganz links im "Statusmenü" angezeigt, die Symbole in der rechten Hälfte der Menüleiste werden hervorgehoben. Sobald es ausgewählt ist, verwenden Right Arrow →Sie die , um zu dem gewünschten zu navigieren. Verwenden Sie Down Arrow ↓, um das Menü zu öffnen und die gewünschte Option auszuwählen. Beachten Sie, dass die OptionTaste in einigen der "Statusmenüs" verschiedene Menüoptionen verfügbar macht.

Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass Fn+ Ctrl+ F2das Apple-Menüsymbol  auf der linken Seite aktiviert. Von dort Right Arrow →erhalten Sie Zugriff auf das Anwendungsmenü. Diese Optionen sind verfügbar in Systemeinstellungen >> Tastatur >> Tastaturkürzel::Tastatur:

Geben Sie hier die Bildbeschreibung ein

Je nachdem, wie Sie Ihre Funktionstasten konfiguriert haben, Fnist das optional.

Geben Sie hier die Bildbeschreibung ein

In macOS Sierra können Sie auch Siri verwenden, um dabei zu helfen. Rufen Sie Siri mit einem beliebigen Tastaturkürzel auf, das Sie unter Systemeinstellungen >> Siri::Tastaturkürzel auswählen, zum Beispiel Option+Spacebar

Geben Sie hier die Bildbeschreibung ein

... sagen Sie dann "Schalten Sie die Tastaturanzeige ein"

Geben Sie hier die Bildbeschreibung ein

... und voila:

Geben Sie hier die Bildbeschreibung ein

Leider schließt Siri den Keyboard Viewer nicht und Command⌘+ auch nichtw

Sie können alles mit Automator erledigen:

  1. Öffnen Sie Automator und wählen Sie "Anwendung"
  2. Suchen Sie oben in der Bibliothek nach "Anwendung starten", doppelklicken Sie darauf
  3. Wählen Sie "Andere" und navigieren Sie zur KeyboardViewer-Datei in /System/Library/Input Methods
  4. Speichern Sie unter einem Namen wie "Tastatur starten". Probier es aus.

Der nächste Teil besteht darin, die Tastatur zu schließen:

  1. Öffnen Sie Automator und wählen Sie "Anwendung"
  2. Oben in der Bibliothek finden Sie "Anwendung beenden", doppelklicken Sie darauf
  3. Wählen Sie "Andere" und navigieren Sie zur KeyboardViewer-Datei in /System/Library/Input Methods

  4. Speichern Sie unter einem Namen wie "Tastatur beenden". Probier es aus.

Jetzt haben Sie zwei Dateien, eine zum Öffnen und eine zum Schließen.

Alles, was Sie brauchen, ist Ihre Maustasten zu verknüpfen, um diese beiden Dateien zu starten!

Zum Beispiel verwende ich Microsoft Bluetooth Notebook Mouse 5000 und es

Funktioniert großartig für mich in 10.9.1

Activity Monitor, KeyboardViewer.app startet von

Finder-Speicherort: /System/Library/Input Methods/KeyboardViewer.app .

Normale Verwendung: Öffnen von der Menüleiste , Schließen von Mauszeiger, um Fensterschaltflächen anzuzeigen, auf die (x) Schließen - Schaltfläche geklickt werden kann. Um das Menüleistenfenster , die Systemeinstellungen , die Tastatur , die Registerkarte Tastatur zu aktivieren , wählen Sie Tastatur und Emoji-Viewer in der Menüleiste anzeigen .

Das KeyboardViewer-Applet zeigt restriktives Verhalten.

  1. Applet-Fenster reagiert nicht auf ⌘-Q , ⌘-W .
  2. Seltsamerweise zeigt Activity Monitor beim Öffnen aus dem Ordner Input Methods an, dass das Applet weiter ausgeführt wird, nachdem sein Fenster geschlossen wurde.
  3. Das unten gezeigte Automator AppleScript läuft langsam im Hintergrund, Tastaturdienste brauchen Sekunden, um Öffnungs- und Schließaktionen im Aktivitätsmonitor zu registrieren.
  4. Das unten gezeigte Tastaturkürzel-Skript wird ohne Fehler ausgeführt, aber das System scheint es zu ignorieren.
  5. Die Quit-Anwendung von Sierra Automator schließt KeyboardViewer.app nicht

Das folgende Automator-Skript kann als Anwendung zum Öffnen/Schließen von KeyboardViewer.app mit einem einzigen Klick gespeichert werden (der Aktivitätsmonitor zeigt diese Öffnen-Schließen-Aktivität auch an) und funktioniert gut, wenn es im Dock platziert wird.

Automator: New , Application , Run AppleScript , save this script

-- see above post, Render
    on run {input, parameters}
        if application "KeyboardViewer" is running then
            quit application "KeyboardViewer"
        else 
            activate application "KeyboardViewer"
        end if
        return input
    end run
-- icon /System/Library/PreferencePanes Keyboard.prefPane/Contents/Resources/Keyboard.icns

Leider fügt dies keine Tastenkombination hinzu. Es bietet jedoch eine Problemumgehung mit einem Klick. Möglicherweise gibt es eine Möglichkeit, mit Automator eine Tastenkombination hinzuzufügen. Ein allgemeines Shortcut-Skript sieht etwa so aus (aber nicht sicher, wie es eingebaut werden soll).

tell application "System Events"
    set application "KeyboardViewer" to keystroke "K" using control down
end tell

(macOS Sierra 10.12.6 auf MP 6,1)

Es ist keine Abkürzung, aber funktioniert für mich. Klicken Sie zuerst auf Keyboard Viewer anzeigen. Wenn Sie mit der Maus in die Ecke gehen, wird ein kleines Dreieck angezeigt. Wenn es fertig ist, wird der Tastatur-Viewer ausgeblendet. Als nächstes wird es angezeigt.

Hier ein kleines Video dazu: https://dai.ly/x7t7x60

Der springende Punkt bei dieser Frage ist, wie man es ohne die Maus macht.