キーボードショートカットでキーボードビューアーを表示または非表示にする方法


19

ショートカットを使用してキーボードビューアを表示および非表示にしたいと思います。

  • キーボードショートカットを使用してキーボードビューアを表示する方法はありますか?
  • 特定の言語に切り替えたら、キーボードビューアを自動的に表示する方法はありますか?

理想的な解決策は、キーボードを表示するApple Scriptにキーボードショートカットを割り当てることです。
duci9y

回答:


15

サービスでキーボードビューアーを起動する(改善)

AutomatorおよびOS Xサービス機能を使用して、ショートカットでキーボードビューアーを起動できます。

キーボードビューアプログラムは、/System/Library/Input Methods/KeyboardViewer.app(Lionより前のバージョンでは/System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app)にあります。Automatorを使用して簡単なランチャーサービスを作成し、ホットキーで開きます。

  1. Automatorを開き、新しいドキュメントの種類として[ サービス]を選択します。
  2. オプション(ワークフロー領域の上部)を「サービスがアプリケーションで入力を受け取らない」に設定します。
  3. Run AppleScriptアクションをワークフローに追加し、テキストを次の行に置き換えます。

    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. 「キーボードビューアを開く」などの名前で保存し、[ キーボードの設定]を開いて[ キーボードショートカット ]タブを開きます。左ペインで[ サービス]を選択し、一番下までスクロールすると、[ 全般]セクションにサービスの名前が表示されます。
  5. チェックボックスがオンになっていることを確認して有効にし、選択してショートカットの追加をクリックしてホットキーを設定します。
  6. ホットキーを設定した後、任意のアプリケーションで[サービス]メニューを開き([Finder]> [サービス])、閉じます。何らかの理由で、これを行うまで私のホットキーは機能しませんでした。

いくつかのメモ:

  • このスクリプトでは、[ユニバーサルアクセス]設定ペインの[ 支援デバイスのアクセスを有効にする]チェックボックスをオンにする必要があります
  • Keyboard Viewerウィンドウを閉じても実際にアプリケーションが終了することはありません。Lriが指摘するように、それはリソースを大量に消費する可能性があるため、repeatKeyboard Viewerに開いているウィンドウがあるかどうかループが5秒ごとにチェックし、そうでない場合は終了します処理する。
  • あなたは事前ライオンOSを実行している場合は、可能のインスタンスを交換する必要があるKeyboardViewerKeyboardViewerServer。これをテストするのに便利なライオンズ以前のものはありません(誰か他の人がコメントで報告できるなら、それは素晴らしいことです。
  • スクリプトはキーボードビューアが閉じられるまでループするため、Automatorの回転ギアアイコンは、閉じるまでメニューバーに表示されます。

はい!これはまさに私が探しているものです。私はオートマトンとシェルスクリプトに精通していますが、ヒントのみが必要でした。どうもありがとう... :)
jm666

これは、ウィンドウが閉じられているかどうかを確認するチェックを実行するApplescriptを使用してこれを更新し、閉じている場合はプロセスを終了して、パフォーマンスの低下を防ぎます。古いbashベースのバージョンに興味がある人は、ここでそのリビジョンを見つけることができます。
-robmathers

最小限の変更で、このスクリプトはビューアを切り替えます。「end if」を「else」に置き換え、「else if」を最後に移動します。
AdamAL

素晴らしい解決策。ただし、「キーボードビューアを表示」メニュー項目は、キーボードビューアが実行されていることを認識しませんか?したがって、両方を使用すると、この種類のメニュー項目が壊れます。
マットセフトン

/System/Library/Input Methods/KeyboardViewer.appカタリナには存在しません。すべてのアプリケーションを開いたが/System/Library/Input Methods、どれもキーボードビューアを開かなかった。何か案は?
Kerndog73

4

QuicksilverExtra Scriptsプラグインは、Show Keyboard Viewer.scptを提供することでこの機能を提供します。

また、アクションRunを使用してShow Keyboard Viewer.scptの Quicksilver Triggerを作成すると、グローバルKeyboard Viewerホットキーが取得されます。

スクリプトのソースは次のとおりです。

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

KeyboardViewerがAppleScriptまたはで開かれopen、メインウィンドウが閉じられた場合、Keyboard Viewerプロセスは開いたままで、約0〜20%のCPUを使用し続けます。


私は通常、シンプルなスクリプト可能なもののためにサードパーティのアプリをインストールするのは好きではありませんが、これは例外です。:)魔法のように働いてくれてありがとう。;)
jm666

サードパーティのソフトウェアを避けたい場合は、組み込みソフトウェアでも同じことを行う答えを投稿しました。
-robmathers

sry mach、@ CanuckSkierが私がもっと好きな答えを投稿したので、彼の答えを受け入れました。とにかくQuickSilverの場合は+1。;)
jm666

4

このスレッドを見つけてよかった。上記の回答に基づいて、キーボードビューアーを切り替えるAlfred拡張スクリプトを作成しました。

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

次のapplescriptを実行して、キーボードビューアーのオンとオフを切り替えるalfredキーワード「kv」を提供します。

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

回避すべきパフォーマンスの問題が発生した場合に備えて、別の実装をコメントアウトしました。


1
リンク切れ。もう一度投稿するほど親切になりますか。これは私が使用するAlfredワークフローです。
ddaa

ここに行き、私はそれを再実装しました(そしてキーボードショートカットCmd + Alt + Ctrl + Shift + Kも追加しました):packal.org/workflow/toggle-keyboard-viewer-0
マットセフトン

3

私はBetterTouchToolを介して次のことを行う方法を見つけました:

  • ショートカットでキーボードビューアーをアクティブにする
  • 別のショートカットでキーボードビューアーを閉じる
  • キーボードビューアを1つのショートカットで切り替える(前の2つは不要)
  • 便宜上、AppleScriptもアップロードしました

プラットフォーム:rMBP Mountain Lion OSX 10.8


ショートカットでキーボードビューアーをアクティブにする

  • BetterTouchToolを起動します
  • キーボードショートカットを追加
  • 事前定義済みアクションの追加>>アプリケーション/ファイル/スクリプトを開く...
  • Macintosh HD / System / Library / Input Methods /に移動します
  • KeyboardViewerを選択

これで、追加のスクリプトなしでビューアをアクティブ化するキーボードショートカットができました。

しかし、赤いXボタンを押しても実際にアプリケーションが終了するわけではないことに気付きました。つまり、キーボードビューアは一度しかアクティブになりません。そのため、プログラムを終了するスクリプトを作成する必要があります。

この問題を修正するには:


別のキーボードショートカットでキーボードビューアーを閉じる

  • Automatorを開く
  • ドキュメントのタイプとしてアプリケーションを選択してください
  • RunAppleScriptを追加
  • (*スクリプトはここにあります*)と書かれている箇所で、それを quit application "KeyboardViewer"
  • ドキュメント内または任意の場所にコンパイルして保存します(KeyboardViewerと同じ場所に移動しました)
  • BetterTouchToolを開きます
  • キーボードショートカットを追加
  • 事前定義済みアクションの追加>>アプリケーション/ファイル/スクリプトを開く...
  • 保存したアプリケーションファイルを見つけます

これで、KeyBoardビューアを有効にすると、終了する方法があります。赤いXボタンの代わりに使用します。Xボタンを押してもキーボードビューアが完全に終了しない理由がわかるまで、これが解決策です。

編集

キーボードビューアをトグルする方法を見つけました!!


1つのキーボードショートカットでキーボードビューアを切り替え

前と同じプロセスですが、コードが変更されます:

  • Automatorを開く
  • ドキュメントのタイプとしてアプリケーションを選択してください
  • RunAppleScriptを追加
  • (*スクリプトはここにあります*)と書かれている箇所で、それを
  if application "KeyboardViewer" is running then
      quit application "KeyboardViewer"
  else
      activate application "KeyboardViewer"
  end if
  • ドキュメント内または任意の場所にコンパイルして保存します(KeyboardViewerと同じ場所に移動しました)
  • BetterTouchToolを開きます
  • キーボードショートカットを追加
  • 事前定義済みアクションの追加>>アプリケーション/ファイル/スクリプトを開く...
  • 保存したアプリケーションファイルを見つけます

これでキーボードビューアが切り替わり、複数のショートカットを割り当てる必要すらありません!


AppleScriptのリンク

上記のコーディング手順全体を実行するのではなく、高速アクセスのためにアプリをオンラインでアップロードしました(BetterTouchToolを介してこのアプリをアクティブ化するだけです)。したがって、身元不明の出版社からアプリを実行したくない場合は、上記の手順に従って独自のアプリを作成してください!

ファイルへのリンク:https : //www.box.com/s/e2461c91e30e0af025e7


それが私を助けたので、それが誰にも役立つことを願っています:)


素晴らしい!! keyboardViewerアプリをランチバーインデックスに直接追加することは、私の目的の良い代替手段になると思いましたが、実行後にkbvを閉じるオプションはありません!だから、あなたは二度目にそれを呼び出すことはできません-奇妙な。とにかく、あなたのスクリプトは大丈夫です!(スクリプトを実行するためだけにスクリプト/実行として保存する必要がありました。)Tx!
ptim

@memeLabそれはあなたのためにうれしかった:)
レンダリング

3

これは、閉じるボタンをクリックしてメインウィンドウを閉じた後でも機能します。

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

キーボードビューアをAppleScriptで開いた場合open -a KeyboardViewer、またはメインウィンドウを閉じた場合、プロセスは開いたままで、約0〜15%のCPUを使用し続けます。入力メニューから[キーボードビューアを表示]を選択した場合は発生しません。したがって、より良いオプションは、メニュー項目をクリックすることです。

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

どちらのスクリプトも、アクセシビリティ設定ペインで支援デバイスを有効にする必要があります。


2

これは一筆書きのショートカットではありませんが、メニューバーの右側にある「ステータスメニュー」アイコンにフォーカスを設定するための「非マウス」ソリューションはFn+ Ctrl+ です。(セクション4F8

ここに画像の説明を入力してください

矢印を使用すると、キーボード設定アイコンと表示/非表示オプションに移動します。Fn+ Ctrl+ を入力するF8と、メニューバーの右半分にある[ステータスメニュー]アイコンの最も左側にあるアイコンが強調表示されます。選択したら、を使用しRight Arrow →て目的の場所に移動します。を使用しDown Arrow ↓てメニューを開き、必要なオプションを選択します。ことに注意してくださいOptionキーは「ステータスメニュー」の一部で異なるメニューオプションが利用できるようになります。

ここに画像の説明を入力してください

注目すべきは、Fn+ Ctrl+ F2は左側のアップルメニューアイコンactivateをアクティブにすることです。そこからRight Arrow →、アプリケーションメニューにアクセスできます。これらのオプションは、システム環境設定>>キーボード>>ショートカット::キーボードで利用できます:

ここに画像の説明を入力してください

ファンクションキーの設定方法に応じて、これFnはオプションです。

ここに画像の説明を入力してください

macOS Sierraでは、Siriを使用してこれを支援することもできます。System Preferences >> Siri :: Keyboard Shortcutから選択したキーボードショートカットでSiriを起動します。例:Option+Spacebar

ここに画像の説明を入力してください

...「キーボードビューアを有効にする」と言う

ここに画像の説明を入力してください

...そして出来上がり:

ここに画像の説明を入力してください

残念ながら、Siriはキーボードビューアを閉じず、Command⌘+w


0

Automatorですべてを実行できます。

  1. Automatorを開き、「アプリケーション」を選択します
  2. ライブラリの上部にある「アプリケーションの起動」を見つけてダブルクリックします
  3. 「その他」を選択し、/ System / Library / Input MethodsのKeyboardViewerファイルに移動します
  4. 「キーボードの起動」などの名前で保存します。試して。

次は、キーボードを閉じることです。

  1. Automatorを開き、「アプリケーション」を選択します
  2. ライブラリの上部にある「Quit application」を見つけてダブルクリックします
  3. 「その他」を選択し、/ System / Library / Input MethodsのKeyboardViewerファイルに移動します

  4. 「キーボードを終了」などの名前で保存します。試して。

これで、オープン用とクローズ用の2つのファイルが作成されます。

必要なのは、マウスボタンを関連付けてこれらの2つのファイルを起動することだけです!

たとえば、Microsoft Bluetooth Notebook Mouse 5000とそれを使用しています

10.9.1でうまく機能します


0

アクティビティモニター、KeyboardViewer.appの起動元

Finderの場所: /システム/ライブラリ/入力方法/ KeyboardViewer.app

通常の使用:メニューバーから開き、マウスホバーから閉じて、(x)閉じるボタンをクリックできるウィンドウボタンを表示します。メニューバーパネル、システム環境設定キーボードキーボードタブを有効にするには、メニューバーでキーボードと絵文字ビューアを表示を選択します

KeyboardViewerアプレットは制限的な動作を示します。

  1. アプレットウィンドウは⌘-Q⌘-Wに応答しません。
  2. 奇妙なことに、フォルダInput Methodsから開くと、アクティビティモニタは、ウィンドウが閉じられた後もアプレットが実行されたままであることを示します。
  3. 以下に示すAutomator AppleScriptはバックグラウンドでゆっくり実行され、キーボードサービスはアクティビティモニターで開くアクションと閉じるアクションを登録するのに数秒かかります。
  4. 以下に示すキーボードショートカットスクリプトはエラーなしで実行されますが、システムは無視されるようです。
  5. Sierra Automatorの終了アプリケーションはKeyboardViewer.appを閉じません。

次のAutomatorスクリプトは、1回のクリックで KeyboardViewer.app を開閉するアプリケーションとして保存でき(アクティビティモニターはこの開閉アクティビティも表示します)、Dockに配置したときに適切に機能します。

Automator:NewApplicationAppleScriptを実行、このスクリプトを保存

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

残念ながら、これはキーボードショートカットを追加しません。ただし、ワンクリックの回避策を提供します。Automatorを使用してキーボードショートカットを追加する方法がいくつかあります。一般的なショートカットスクリプトは次のようになります(ただし、組み込む方法はわかりません)。

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

(MP 6,1上のmacOS Sierra 10.12.6)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.