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

19

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?
Machen
quelle
Die ideale Lösung wäre, einem Apple-Skript, das die Tastatur anzeigt, eine Tastenkombination zuzuweisen.
Duci9y

Antworten:

15

Starten Sie Keyboard Viewer mit einem Dienst (verbessert)

Sie können den Keyboard Viewer mit einer Verknüpfung mithilfe von Automator und der OS X Services-Funktionalität starten.

Das Keyboard Viewer-Programm läuft 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 mit Automator einen einfachen Launcher-Dienst erstellen.

  1. Öffnen Sie Automator und wählen Sie Service als Typ Ihres neuen Dokuments.
  2. Stellen Sie die Optionen (oben im Workflow-Bereich) auf "Service empfängt in keiner Anwendung Eingaben ".
  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 mit einem Namen wie „Open Tastaturübersicht“, dann öffnen Tastatureinstellungen auf die Tastaturbefehle Registerkarte. 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, wählen Sie es 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. Aus irgendeinem Grund funktionierte mein Tastenkürzel nicht, bis ich dies tat.

Ein paar Notizen:

  • Für das Skript muss das Kontrollkästchen Zugriff für unterstützende Geräte aktivieren im Einstellungsbereich für den universellen Zugriff aktiviert sein .
  • Durch das Schließen des Keyboard Viewer-Fensters wird die Anwendung nicht beendet. Wie Lri betont, kann dies eine Art Ressourcenmangel sein. Die repeatSchleife überprüft daher alle 5 Sekunden, ob in Keyboard Viewer offene Fenster vorhanden sind, und beendet das Programm, wenn dies nicht der Fall ist Prozess.
  • Wenn Sie ein Betriebssystem vor Lion verwenden, müssen Sie möglicherweise die Instanzen von KeyboardViewerdurch ersetzen KeyboardViewerServer. Ich habe vor Lion nichts zur Hand, um dies zu testen (wenn jemand anderes in den Kommentaren darüber berichten könnte, wäre das großartig.
  • Da das Skript eine Schleife ausführt, bis der Keyboard Viewer geschlossen wird, wird das Automator-Zahnradsymbol in der Menüleiste angezeigt, bis es geschlossen wird.
Robmathers
quelle
JA! Das ist genau das, wonach ich suche. Ich bin mit Automator und Shell-Scripting vertraut und brauchte nur einen Hinweis. Vielen Dank ... :)
jm666
Ich habe dies mit einem Applescript aktualisiert, das überprüft, ob das Fenster geschlossen wurde, und in diesem Fall den Prozess beendet, um Leistungseinbußen zu vermeiden. Jeder, der sich für die alte bash-basierte Version interessiert, kann diese Version hier finden .
Robmathers
Mit minimalen Änderungen schaltet dieses Skript den Viewer um. Ersetzen Sie "end if" durch "else" und verschieben Sie "else if" an das Ende.
AdamAL
Großartige Lösung. Dem Menüpunkt "Tastatur-Viewer anzeigen" ist jedoch nicht bekannt, dass der Tastatur-Viewer ausgeführt wird. Wenn Sie also beide verwenden, unterbricht diese Art von Menüelement.
Matt Sephton
/System/Library/Input Methods/KeyboardViewer.appexistiert nicht auf Catalina. Ich habe alle Anwendungen in /System/Library/Input Methodsgeöffnet und keine davon hat den Tastatur-Viewer geöffnet. Irgendwelche Ideen?
Kerndog73
4

Das Extra Scripts Plugin von Quicksilver bietet diese Funktionalität durch die Bereitstellung von Show Keyboard Viewer.scpt .

Wenn Sie außerdem einen Quicksilver-Trigger für Show Keyboard Viewer.scpt mit der Aktion Ausführen erstellen , erhalten Sie den globalen Tastatur-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 wird openund das Hauptfenster geschlossen wird, bleibt der Keyboard Viewer-Prozess geöffnet und verbraucht weiterhin ca. 0-20% CPU.

mach
quelle
Ich mag es normalerweise nicht, Apps von Drittanbietern für einfache skriptfähige Dinge zu installieren, aber dies ist die Ausnahme . :) Vielen Dank, arbeiten wie ein Zauber. ;)
jm666
Wenn Sie Software von Drittanbietern vermeiden möchten, habe ich gerade eine Antwort gepostet, die dasselbe mit integrierter Software macht.
Robmathers
sry mach, @CanuckSkier hat eine Antwort gepostet, was mir besser gefällt, und akzeptiert daher seine Antwort. +1 trotzdem für den QuickSilver. ;)
jm666
4

Froh, dass ich diesen Thread gefunden habe. Basierend auf den obigen Antworten habe ich ein Alfred-Erweiterungsskript erstellt, mit dem Keyboard Viewer umgeschaltet wird.

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

Es gibt ein Alfred-Schlüsselwort "kv", mit dem der Tastatur-Viewer durch Ausführen des folgenden Apple-Skripts ein- und ausgeschaltet 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, falls Leistungsprobleme auftreten, die vermieden werden sollten.

Dergachev
quelle
1
Defekter Link. Würdest du so nett sein, es nochmal zu posten. Dies ist ein Alfred Workflow, den ich verwenden würde.
ddaa
Los geht's, ich habe es neu implementiert (und auch eine Tastenkombination Cmd + Alt + Strg + Umschalt + K hinzugefügt
Matt Sephton
3

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

  • Aktivieren Sie den Tastatur-Viewer über eine Verknüpfung
  • Schließen Sie den Tastatur-Viewer über eine andere Verknüpfung
  • Umschalten des Tastatur-Viewers um eine Verknüpfung (die beiden vorherigen sind nicht erforderlich)
  • Ich habe auch das AppleScript zur Vereinfachung hochgeladen

Plattform: rMBP Mountain Lion OSX 10.8


Aktivieren Sie den Tastatur-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, mit der Sie den Viewer ohne zusätzliches Skript aktivieren können.

Ich habe jedoch festgestellt, dass das Drücken der roten X-Taste die Anwendung nicht tatsächlich 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

  • Öffnen Sie Automator
  • Wählen Sie Anwendung als Dokumenttyp
  • Fügen Sie RunAppleScript hinzu
  • Wo es heißt (* Ihr Skript geht hier *), ersetzen Sie es mit quit application "KeyboardViewer"
  • Kompilieren und speichern wie in Dokumenten oder wo immer Sie wollen (ich habe es an den gleichen Ort wie KeyboardViewer verschoben)
  • Öffnen Sie BetterTouchTool
  • Tastaturkürzel hinzufügen
  • Vordefinierte Aktion hinzufügen >> Anwendung / Datei / Skript öffnen ...
  • Suchen Sie die gerade gespeicherte Anwendungsdatei

Sie haben jetzt die 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 !!


TASTATURANSICHT UMSCHALTEN mit einer Tastenkombination

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

  • Öffnen Sie Automator
  • Wählen Sie Anwendung als Dokumenttyp
  • Fügen Sie RunAppleScript hinzu
  • Wo es heißt (* Ihr Skript geht hier *), ersetzen Sie es mit
  if application "KeyboardViewer" is running then
      quit application "KeyboardViewer"
  else
      activate application "KeyboardViewer"
  end if
  • Kompilieren und speichern wie in Dokumenten oder wo immer Sie wollen (ich habe es an den gleichen Ort wie KeyboardViewer verschoben)
  • Öffnen Sie BetterTouchTool
  • Tastaturkürzel hinzufügen
  • Vordefinierte Aktion hinzufügen >> Anwendung / Datei / Skript öffnen ...
  • Suchen Sie die gerade gespeicherte Anwendungsdatei

Jetzt ist der Tastatur-Viewer umgeschaltet und Sie müssen nicht einmal mehrere Verknüpfungen zuweisen!


Link für AppleScript

Ich habe die App online hochgeladen, um den Zugriff zu beschleunigen, anstatt die oben beschriebenen Codierungsschritte auszuführen (aktivieren Sie diese App einfach über BetterTouchTool). Da ich jedoch kein identifizierter Herausgeber bin, blockiert Ihr Betriebssystem möglicherweise die Ausführung dieser App, abhängig von Ihren Sicherheitseinstellungen. Wenn Sie also keine Apps von unbekannten Publishern ausführen möchten, führen Sie einfach die obigen Schritte aus, um Ihre eigene App zu erstellen.

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


Hoffe es hilft jedem wie es mir geholfen hat :)

Machen
quelle
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, wenn es ausgeführt wird! Sie können es also nicht ein zweites Mal aufrufen - komisch. auf jeden Fall funktioniert Ihr Skript eine Belohnung! (Ich musste es als Skript speichern / ausführen, damit es für mich funktioniert.) Tx!
15.
@memeLab Ich bin froh, dass es für Sie funktioniert hat :)
Render
3

Dies würde auch funktionieren, nachdem das Hauptfenster durch Klicken auf die Schaltfläche Schließen 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 der Keyboard Viewer mit AppleScript geöffnet wird oder open -a KeyboardViewerdas Hauptfenster geschlossen wird, bleibt der Prozess geöffnet und verbraucht weiterhin etwa 0-15% CPU. Dies ist nicht der Fall, wenn Sie im Eingabemenü die Option Tastatur-Viewer anzeigen auswählen. Eine bessere Möglichkeit wäre es, 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

Für beide Skripte ist ein Zugriff erforderlich, damit Hilfsgeräte im Einstellungsbereich für Eingabehilfen aktiviert werden können.

Lri
quelle
2

Es ist keine Kurztaste mit einem Strich, aber eine "Nicht-Maus" -Lösung ist Fn+ Ctrl+ F8, um den Fokus auf die " Statusmenü " -Symbole auf der rechten Seite der Menüleiste zu legen . ( Abschnitt 4 )

Bildbeschreibung hier eingeben

Die Pfeile navigieren Sie zum Symbol für die Tastatureinstellungen und zu den Optionen zum Ein- / Ausblenden. Wenn Sie Fn+ Ctrl+ eingeben, wird F8das Symbol ganz links im "Statusmenü" hervorgehoben, das sich in der rechten Hälfte der Menüleiste befindet. Sobald es ausgewählt ist, Right Arrow →navigieren Sie mit zu dem gewünschten. Verwenden Sie das um Down Arrow ↓das Menü zu öffnen , und wählen Sie die gewünschte Option. Beachten Sie, dass die OptionTaste in einigen "Statusmenüs" unterschiedliche Menüoptionen zur Verfügung stellt.

Bildbeschreibung hier eingeben

Zu beachten ist , Fn+ Ctrl+ F2wird das Apple - Menü Symbol  auf der linken Seite aktivieren. Von dort aus Right Arrow →haben Sie Zugriff auf das Anwendungsmenü. Diese Optionen sind in den Systemeinstellungen >> Tastatur >> Tastenkombinationen :: Tastatur verfügbar:

Bildbeschreibung hier eingeben

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

Bildbeschreibung hier eingeben

In macOS Sierra können Sie auch Siri verwenden, um dabei zu helfen. Rufen Sie Siri mit dem Tastaturkürzel auf, das Sie in den Systemeinstellungen >> Siri :: Tastaturkürzel ausgewählt haben, z. B. Option+Spacebar

Bildbeschreibung hier eingeben

... dann sag "Keyboard Viewer einschalten"

Bildbeschreibung hier eingeben

... und voila:

Bildbeschreibung hier eingeben

Leider wird Siri den Keyboard Viewer nicht schließen und auch nicht Command⌘+w

Mr. Kennedy
quelle
0

Sie können alles mit Automator machen:

  1. Öffne Automator und wähle "Anwendung"
  2. Doppelklicken Sie oben in der Bibliothek auf "Anwendung starten"
  3. Wählen Sie "other" und navigieren Sie zur KeyboardViewer-Datei in / System / Library / Input Methods
  4. Speichern Sie mit einem Namen wie "Tastatur starten". Probier es aus.

Der nächste Teil ist das Schließen der Tastatur:

  1. Öffne Automator und wähle "Anwendung"
  2. Doppelklicken Sie oben in der Bibliothek auf "Anwendung beenden"
  3. Wählen Sie "other" und navigieren Sie zur KeyboardViewer-Datei in / System / Library / Input Methods

  4. Speichern Sie mit 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 zuzuordnen, um diese beiden Dateien zu starten!

Zum Beispiel verwende ich Microsoft Bluetooth Notebook Mouse 5000 und es

funktioniert bei mir hervorragend in 10.9.1

Eugene Nogalsky
quelle
0

Activity Monitor, KeyboardViewer.app wird von gestartet

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

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

Das KeyboardViewer-Applet weist restriktives Verhalten auf.

  1. Das Applet-Fenster reagiert nicht auf ⌘-Q , ⌘-W .
  2. Seltsamerweise zeigt der Aktivitätsmonitor beim Öffnen aus dem Ordner Eingabemethoden , dass das Applet nach dem Schließen des Fensters weiterhin ausgeführt wird.
  3. Das unten gezeigte Automator-AppleScript wird langsam im Hintergrund ausgeführt. Die Tastaturdienste benötigen Sekunden, um das Öffnen und Schließen von Aktionen in Activity Monitor zu registrieren.
  4. Das unten gezeigte Tastaturkürzelskript wird fehlerfrei ausgeführt, das System scheint es jedoch zu ignorieren.
  5. Das Programm zum Beenden von Sierra Automator schließt KeyboardViewer.app nicht

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

Automator: Neu , Anwendung , AppleScript ausführen , dieses Skript speichern

-- 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 wird dadurch keine Tastenkombination hinzugefügt. Es bietet jedoch eine Ein-Klick-Problemumgehung. Es kann eine Möglichkeit geben, eine Tastenkombination mit Automator hinzuzufügen. Ein allgemeines Verknüpfungsskript sieht ungefähr so ​​aus (ist sich jedoch nicht sicher, wie es eingefügt 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)

Mark Stewart
quelle