web-dev-qa-db-ja.com

特定の入力ソースに切り替えます

Mac OS Xには、アクティブ化された入力ソースを切り替えるためのキーボードショートカットがあります

alt text

to特定の言語に切り替えることは可能ですか?したがって、3つの入力メソッドがある場合、3つのショートカットを使用できます。Ctrl-1英語の場合、Ctrl-2スペイン語およびCtrl-3ロシア語の場合。

23
Nikem

私はあなたに、可能な限り醜い「解決策」を提示します:

  • システム環境設定"ユニバーサルアクセス、で支援機器のサポートを有効にする
  • システム環境設定"言語とテキストのメニューバーに[入力ソース]メニューを表示します。
  • システム環境設定"キーボード"キーボードショートカット"キーボードとテキスト入力のショートカットCtrl-F8ステータスメニューにフォーカスを移動に定義されていることを確認します。
  • [入力ソース]メニューが、Cmdを押しながらドラッグして移動できる左端のメニュー項目であることを確認してください。

AppleScript Editorを使用して、次のコードを使用して3つのスクリプトを記述します。

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

言語ごとに1回保存し、言語の名前を切り替えます。別のキーを押す場合、またはCtrl-F8とは異なるものを割り当てる場合は、キーコード ここ に置き換えてください。 右矢印キーを数回押すことで、[入力ソース]メニューを左端の位置から移動することもできます。

必要に応じてスクリプトを呼び出します。アプリケーションランチャー(Quicksilver、Launchbarなど)を使用するか、Automatorを使用してサービスでラップし、システム環境設定"キーボード"キーボードショートカット"サービスでキーボードショートカットを割り当てます。

7
Daniel Beck

切り替えたいキーボードレイアウトの名前がわかっているので、AppleScriptでもう少し優れたソリューションを思いついた。次のような関数を作成します。

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

そしてそれを

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

キーボードレイアウトの名前はローカライズされていることに注意してください。つまり、ドイツのシステムでは、上記の例では「英語」と「ドイツ語」を呼び出す必要があります。

12
Asmus

1つのオプションは、changeInput U.S.のように changeInput および シェルコマンドにショートカットを割り当てる をダウンロードすることです。

KeyRemap4MacBookを使用することもできます。

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

private.xmlドキュメント を参照してください。

VK_CHANGE_INPUTSOURCE_ENGLISHは vkchangeinputsourcedef.xml で定義されています。 EventViewer.appから入力ソースのIDを確認できます。たとえば、| ModifierFlag::NONEがないと、最初の設定はoption-command-Eにも適用されます。 キーコード値 および 事前定義された設定 のソースを参照してください。

6
Lri

私はそれが古い質問であることを知っています。しかし、2016年の終わりにさえ、私はまだシンプルで素晴らしい解決策を見つけられませんでした。したがって、私は IMEShortcuts を作成し、Sierraで動作します。特定の入力方法にカスタマイズされたショートカットを割り当てることができます。試してみてください。そして、皆さんがバグを見つけたら、喜んでお手伝いします。

また、 Karabiner (KeyRemap4MacBookとして知られています)は、Mac用の優れたキーボードカスタマイザーです。しかし、それは少し複雑で、現在シエラでは壊れています。 YosemiteまたはElCapitanを使用している場合は、もう1つの優れた選択肢になります。

4
rock9c

見つかりました kawa -あなたのニーズを正確に満たす非常にシンプルなアプリ。必要な入力ソースに直接切り替えるためのショートカットを設定します。

1
qwad1000

私が最も満足している別の解決策があります。 KeyRemap4MacBook は、キーボードボタンを再マップできるアプリケーションです。とりわけ、言語変更のサポートを完全ではありませんが一部可能にします。だから私たちはいくつかのカスタム構成が私が望むことをします。

短所:-サードパーティアプリケーション-現時点では限られた言語サポートのみ

長所:-概念的には、UIでスクリプトを実行するよりも少し優れています

1
Nikem

AppleScriptでは、cmd +「スペース」(またはキーボードソースを変更するもの)のみを使用する必要があります。

そして、あなたが必要とするすべてのもの:

    key code 49 using command down

49-AppleScriptのASCIIの「スペース」ボタンのコード。

追伸:システム環境設定でAppleScriptユーティリティにアクセスすることを忘れないでください。

1
Ivan Trubnikov

これ リンク それを行う方法についてのビデオがあります。すでに「コマンド+スペース」のホットケーキがありますが、スポットライトのホットキーも「コマンド+スペース」です。 Spotlightはホットキーを上書きするため、言語の切り替えは発生しません。リンクのビデオでは、ホットキーを切り替えてホットキーを切り替える方法を紹介しています。

幸運を、

0
David