Comment afficher ou masquer la visionneuse de clavier avec un raccourci clavier?

19

Je souhaite afficher et masquer la visionneuse de clavier à l'aide d'un raccourci.

  • Existe-t-il un moyen d'afficher la visionneuse de clavier via un raccourci clavier?
  • Existe-t-il un moyen d'afficher automatiquement le visualiseur de clavier une fois que je suis passé à une langue spécifique?
Rendre
la source
La solution idéale serait d'attribuer un raccourci clavier à un script Apple qui montre le clavier.
duci9y

Réponses:

15

Lancer la visionneuse de clavier avec un service (amélioré)

Vous pouvez lancer la visionneuse de clavier avec un raccourci en utilisant Automator et la fonctionnalité des services OS X.

Le programme Keyboard Viewer existe à /System/Library/Input Methods/KeyboardViewer.app(dans les versions antérieures à Lion, il peut être à /System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app). Vous l'ouvrez avec un raccourci clavier en utilisant Automator pour créer un service de lancement simple.

  1. Ouvrez Automator et sélectionnez Service comme type de votre nouveau document.
  2. Définissez les options (en haut de la zone de workflow) sur "Le service ne reçoit aucune entrée dans aucune application ".
  3. Ajoutez l' action Exécuter AppleScript à votre flux de travail et remplacez le texte par les lignes suivantes:

    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. Enregistrez avec un nom comme "Ouvrir la visionneuse de clavier", puis ouvrez les Préférences de clavier dans l' onglet Raccourcis clavier . Sélectionnez Services dans le volet gauche et faites défiler vers le bas, où vous devriez voir le nom de votre service sous la section générale.
  5. Assurez-vous que la case est cochée pour l'activer, puis sélectionnez-la et cliquez sur Ajouter un raccourci pour définir un raccourci clavier.
  6. Après avoir défini le raccourci clavier, ouvrez le menu Services dans n'importe quelle application (par exemple Finder> Services), puis fermez-le. Pour une raison quelconque, ma touche de raccourci n'a pas fonctionné jusqu'à ce que je fasse cela.

Quelques notes:

  • Le script nécessite que vous cochez la case Activer l'accès pour les appareils et accessoires fonctionnels dans le volet de préférences Accès universel .
  • La fermeture de la fenêtre du visualiseur de clavier ne quitte pas réellement l'application, et comme le souligne Lri, cela peut être un peu un porc de ressource, donc la repeatboucle vérifie toutes les 5 secondes si le visualiseur de clavier a des fenêtres ouvertes, et sinon, quitte le processus.
  • Si vous utilisez un système d'exploitation antérieur à Lion, vous devrez peut- être remplacer les instances de KeyboardViewerpar KeyboardViewerServer. Je n'ai rien de pré-Lion à portée de main pour tester cela (si quelqu'un d'autre pouvait faire rapport dans les commentaires, ce serait bien.
  • Étant donné que le script se boucle jusqu'à ce que le visualiseur de clavier soit fermé, l'icône d'engrenage de rotation Automator s'affiche dans la barre de menus jusqu'à ce qu'il se ferme.
robmathers
la source
OUI! C'est exactement ce que je cherche. Je connais l'automatisme et le shell-scripting, j'avais seulement besoin d'un indice. Merci beaucoup ... :)
jm666
J'ai mis à jour cela en utilisant un Applescript qui exécute une vérification pour voir si la fenêtre a été fermée, et si c'est le cas, quitte le processus, pour éviter la perte de performances. Toute personne intéressée par l'ancienne version basée sur bash peut trouver cette révision ici .
robmathers
Avec un minimum de modifications, ce script bascule le visualiseur. Remplacez "end if" par "else" et déplacez "else if" à la fin.
AdamAL
Excellente solution. Cependant, l'élément de menu "Afficher la visionneuse de clavier" ne sait pas que la visionneuse de clavier est en cours d'exécution? Donc, ce genre de casse cet élément de menu si vous utilisez les deux.
Matt Sephton
/System/Library/Input Methods/KeyboardViewer.appn'existe pas sur Catalina. J'ai ouvert toutes les applications /System/Library/Input Methodset aucune n'a ouvert la visionneuse de clavier. Des idées?
Kerndog73
4

Le plugin Extra Scripts de Quicksilver offre cette fonctionnalité en fournissant Show Keyboard Viewer.scpt .

En outre, lorsque vous créez un déclencheur Quicksilver pour Show Keyboard Viewer.scpt avec l'action Exécuter , vous obtenez le raccourci clavier global Keyboard Viewer.

Voici la source du script:

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

Si KeyboardViewer est ouvert avec un AppleScript ou avec openet que la fenêtre principale est fermée, le processus Keyboard Viewer reste ouvert et continue à utiliser environ 0-20% CPU.

mach
la source
Je n'aime généralement pas installer des applications tierces pour des choses scriptables simples, mais c'est l'exception . :) Merci beaucoup, travailler comme un charme. ;)
jm666
Si vous voulez éviter les logiciels tiers, je viens de publier une réponse qui fera la même chose avec les logiciels intégrés.
robmathers
sry mach, @CanuckSkier a publié une réponse ce que j'aime le plus, acceptant ainsi sa réponse. +1 de toute façon pour le QuickSilver. ;)
jm666
4

Heureux d'avoir trouvé ce fil. Sur la base des réponses ci-dessus, j'ai créé un script d'extension Alfred qui active ou désactive la visionneuse de clavier.

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

Il fournit un mot-clé alfred "kv" qui active et désactive la visionneuse de clavier, en exécutant l'applescript suivant:

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

J'ai laissé une implémentation alternative commentée, au cas où je rencontrerais des problèmes de performances qu'elle était censée éviter.

Dergachev
la source
1
Lien cassé. Seriez-vous assez aimable pour l'afficher à nouveau. C'est un workflow Alfred que j'utiliserais.
ddaa
C'est parti, je l'ai réimplémenté (et j'ai également ajouté un raccourci clavier Cmd + Alt + Ctrl + Maj + K): packal.org/workflow/toggle-keyboard-viewer-0
Matt Sephton
3

J'ai trouvé un moyen via BetterTouchTool pour effectuer les opérations suivantes:

  • Activer la visionneuse de clavier par un raccourci
  • Fermer la visionneuse de clavier par un autre raccourci
  • Basculer la visionneuse de clavier par un raccourci (pas besoin des deux précédents)
  • J'ai également téléchargé l'AppleScript pour plus de commodité

Plateforme: rMBP Mountain Lion OSX 10.8


Activer la visionneuse de clavier par un raccourci

  • Lancer BetterTouchTool
  • Ajouter un raccourci clavier
  • Ajouter une action prédéfinie >> Ouvrir une application / un fichier / un script ...
  • Accédez à Macintosh HD / Système / Bibliothèque / Méthodes de saisie /
  • Sélectionnez KeyboardViewer

Vous disposez maintenant d'un raccourci clavier pour activer la visionneuse sans script supplémentaire.

CEPENDANT, j'ai remarqué que le fait d'appuyer sur le bouton rouge X ne quitte pas réellement l'application, ce qui signifie que le visualiseur de clavier ne sera activé qu'une seule fois. Vous devez donc créer un script pour quitter le programme.

Pour résoudre ce problème:


Fermer la visionneuse de clavier par un autre raccourci clavier

  • Ouvrez Automator
  • Choisissez Application comme type de document
  • Ajouter RunAppleScript
  • Où il est dit (* Votre script va ici *), remplacez-le par quit application "KeyboardViewer"
  • Compilez et enregistrez comme dans des documents ou n'importe où (je l'ai déplacé au même endroit que KeyboardViewer)
  • Ouvrez BetterTouchTool
  • Ajouter un raccourci clavier
  • Ajouter une action prédéfinie >> Ouvrir une application / un fichier / un script ...
  • Localisez le fichier d'application que vous venez d'enregistrer

Vous avez maintenant un moyen de quitter définitivement le visualiseur KeyBoard une fois qu'il est activé. Utilisez-le à la place du bouton X rouge. Jusqu'à ce que je comprenne pourquoi le visualiseur de clavier ne se ferme pas complètement lorsque vous appuyez sur le bouton X, cela devrait être votre solution.

ÉDITER

J'ai trouvé un moyen de basculer le visualiseur de clavier !!


TOGGLE KEYBOARD VIEWER par un raccourci clavier

même processus que précédemment mais le code est modifié:

  • Ouvrez Automator
  • Choisissez Application comme type de document
  • Ajouter RunAppleScript
  • Où il est dit (* Votre script va ici *), remplacez-le par
  if application "KeyboardViewer" is running then
      quit application "KeyboardViewer"
  else
      activate application "KeyboardViewer"
  end if
  • Compilez et enregistrez comme dans des documents ou n'importe où (je l'ai déplacé au même endroit que KeyboardViewer)
  • Ouvrez BetterTouchTool
  • Ajouter un raccourci clavier
  • Ajouter une action prédéfinie >> Ouvrir une application / un fichier / un script ...
  • Localisez le fichier d'application que vous venez d'enregistrer

Maintenant, le visualiseur de clavier est basculé et vous n'avez même plus besoin d'attribuer plusieurs raccourcis!


Lien pour AppleScript

J'ai téléchargé l'application en ligne pour un accès plus rapide plutôt que de faire toutes les étapes de codage ci-dessus (il suffit d'activer cette application via BetterTouchTool) Cependant, comme je ne suis pas un éditeur identifié, votre système d'exploitation peut bloquer l'exécution de cette application, selon vos préférences de sécurité. Donc, si vous préférez ne pas exécuter d'applications à partir d'éditeurs non identifiés, suivez simplement les étapes ci-dessus pour créer votre propre application!

Lien vers le fichier: https://www.box.com/s/e2461c91e30e0af025e7


J'espère que cela aide tout le monde car cela m'a aidé :)

Rendre
la source
fantastique!! Je pensais que l'ajout de l'application keyboardViewer directement à mon index de la barre de lancement serait un bon substitut à mes fins, mais il n'y a pas d'option pour fermer kbv une fois qu'il est en cours d'exécution! donc, vous ne pouvez pas l'invoquer une deuxième fois - bizarre. Quoi qu'il en soit, votre script est un régal! (J'ai dû l'enregistrer en tant que script / exécuter uniquement pour que cela fonctionne pour moi.) Tx!
ptim
@memeLab Heureux que cela ait fonctionné pour vous :)
Rendu
3

Cela fonctionnerait également après la fermeture de la fenêtre principale en cliquant sur le bouton Fermer:

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

Si Keyboard Viewer est ouvert avec AppleScript ou open -a KeyboardVieweret que la fenêtre principale est fermée, le processus reste ouvert et continue à utiliser environ 0-15% CPU. Cela ne se produit pas lorsque vous sélectionnez Afficher la visionneuse de clavier dans le menu d'entrée. Une meilleure option pourrait donc être de cliquer sur l'élément de menu:

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

Les deux scripts nécessitent que l'accès aux appareils et accessoires fonctionnels soit activé dans le volet des préférences d'accessibilité.

Lri
la source
2

Ce n'est pas un raccourci d'un seul coup, mais une solution "sans souris" est Fn+ Ctrl+ F8pour mettre l'accent sur les icônes " Menu d'état " sur le côté droit de la barre de menus. ( Section 4 )

entrez la description de l'image ici

Les flèches vous mèneront à l'icône Préférences du clavier et aux options Afficher / Masquer. Lorsque vous saisissez Fn+ Ctrl+, F8l'icône située à l'extrême gauche du "menu d'état", les icônes situées dans la moitié droite de la barre de menus sont mises en surbrillance. Une fois qu'il est sélectionné, utilisez le Right Arrow →pour naviguer vers celui que vous souhaitez. Utilisez le Down Arrow ↓pour ouvrir le menu et sélectionnez l'option souhaitée. Notez que la Optiontouche rendra différentes options de menu disponibles dans certains des "menus d'état".

entrez la description de l'image ici

À noter, Fn+ Ctrl+ F2activera l'icône du menu Apple  sur le côté gauche. De là, le Right Arrow →vous donnera accès au menu Application. Ces options sont disponibles dans Préférences Système >> Clavier >> Raccourcis :: Clavier:

entrez la description de l'image ici

Selon la façon dont vous avez configuré vos touches de fonction, le Fnest facultatif.

entrez la description de l'image ici

Dans macOS Sierra, vous pouvez également utiliser Siri pour vous aider. Appelez Siri avec le raccourci clavier que vous choisissez dans les Préférences Système >> Siri :: Raccourci clavier, par exemple Option+Spacebar

entrez la description de l'image ici

... puis dites "Activer la visionneuse de clavier"

entrez la description de l'image ici

... et le tour est joué:

entrez la description de l'image ici

Malheureusement, Siri ne fermera pas la visionneuse de clavier, ni Command⌘+w

M. Kennedy
la source
0

vous pouvez tout faire par Automator:

  1. ouvrez Automator et sélectionnez "Application"
  2. en haut de la bibliothèque, trouvez "Lancer l'application", double-cliquez dessus
  3. choisissez "autre" et accédez au fichier KeyboardViewer dans / System / Library / Input Methods
  4. Enregistrez avec un nom comme "démarrer le clavier". Essaye-le.

la partie suivante consiste à fermer le clavier:

  1. ouvrez Automator et sélectionnez "Application"
  2. en haut de la bibliothèque, recherchez "Quitter l'application", double-cliquez dessus
  3. choisissez "autre" et accédez au fichier KeyboardViewer dans / System / Library / Input Methods

  4. Enregistrez avec un nom comme "quitter le clavier". Essaye-le.

maintenant, vous aurez deux fichiers un pour ouvrir, un pour fermer.

il vous suffit d'associer les boutons de votre souris pour lancer ces deux fichiers!

par exemple, j'utilise Microsoft Bluetooth Notebook Mouse 5000 et il

fonctionne très bien pour moi dans 10.9.1

Eugene Nogalsky
la source
0

Activity Monitor, KeyboardViewer.app se lance à partir de

Emplacement du Finder: / Système / Bibliothèque / Méthodes d'entrée / KeyboardViewer.app .

Utilisation normale: ouvrir à partir de la barre de menus , fermer à partir du survol de la souris pour afficher les boutons de la fenêtre où le bouton de fermeture (x) peut être cliqué. Pour activer le panneau Barre de menus , Préférences Système , Clavier , onglet Clavier , sélectionnez Afficher le clavier et les visualiseurs Emoji dans la barre de menus .

L'applet KeyboardViewer présente des comportements restrictifs.

  1. La fenêtre de l'applet ne répond pas à ⌘-Q , ⌘-W .
  2. Curieusement, lorsqu'il est ouvert à partir du dossier Méthodes d'entrée , le Moniteur d'activité montre que l'applet continue de fonctionner après la fermeture de sa fenêtre.
  3. Automator AppleScript illustré ci-dessous s'exécute lentement en arrière-plan, les services de clavier prennent quelques secondes pour enregistrer les actions d'ouverture et de fermeture dans le moniteur d'activité.
  4. Le script de raccourci clavier illustré ci-dessous s'exécute sans erreur, mais le système semble ignorer.
  5. L' application Quitter de Sierra Automator ne fermera pas KeyboardViewer.app

Le script Automator suivant peut être enregistré en tant qu'application pour ouvrir-fermer KeyboardViewer.app en un seul clic (le moniteur d'activité montre également cette activité d'ouverture-fermeture), et il fonctionne bien lorsqu'il est placé dans le Dock.

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

Malheureusement, cela n'ajoute pas de raccourci clavier. Cependant, il propose une solution de contournement en un clic. Il peut y avoir un moyen d'ajouter un raccourci clavier à l'aide d'Automator. Un script de raccourci général ressemble à ceci (mais vous ne savez pas comment l'incorporer).

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

(macOS Sierra 10.12.6 sur MP 6,1)

Mark Stewart
la source