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


23

Mac OS Xで、切り替えるためのキーボードショートカットが存在する間に活性化された入力ソース。

代替テキスト

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


キーボードレイアウトとインターフェイス言語は独立しています。また、インターフェイス言語はプログラムの再起動後にのみ適用されるため、ショートカットによって得られるものはすべて、とにかくアプリケーションを再起動するという要件によって無効になります。
ダニエルベック

インターフェイス言語の変更には興味がありません。入力言語のみが対象です。
ニケ

あなたの質問を合理化し、明確にしました。私が何か間違ったことをしたと思われる場合は元に戻してください(これを行うのは初めてです)。
ダニエルベック

回答:


7

私はあなたに、最もuい可能な「解決策」を提示します:

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

AppleScript Editor3つのスクリプトを使用して記述し、それぞれに次のコードを使用します。

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を使用してサービスにラップしたり、システム環境設定»キーボード»キーボードショートカット»サービスでキーボードショートカットを割り当てたり、スクリプトを呼び出します


1
@Nikemうまくいきましたか?
ダニエルベック

1
はい、うまくいきました。
ナイケ

1
アンダ、ダニエル、私は別のソリューションを選択しましたが、それでもアクションスクリプトとサービスを紹介してくれてありがとう:)
Nikem

@Nikemどういたしまして。この回答が役立つ場合は、横にある「上向き矢印の三角形」をクリックして、回答に投票してください。また、横にあるチェックマークをクリックして、回答を承認することもできます(これが最も好きな回答であることを示し、問題を解決したと見なします)。ところで、ActionScriptはAdobe、これはAppleScriptです。
ダニエルベック

@Daniel事実、私はどの答えを勧めるべきかわかりません。私は私を選んだが、あなたは...もっと広く使用可能である
Nikem

12

切り替えたいキーボードレイアウトの名前がわかっている場合は、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")

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


私よりも間違いなくいい。AppleScriptを正しく学習する必要があります。
ダニエルベック

6

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

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、例えば、第1設定は、オプションのコマンド-Eに適用されます。キーコードの値定義済みの設定については、ソースを参照してください。


4

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

また、Karabiner(KeyRemap4MacBookとして知られています)は、Mac用の優れたキーボードカスタマイザーです。しかし、それは少し複雑で、現在Sierraでは壊れています。YosemiteまたはEl Capitanを使用している場合は、別の良い選択です。


IMEShortcutsをありがとう!それは非常にうれしいです。アクティブな言語を表示するためにメニューバーにアイコンを追加した場合、喜んで5ドルかそこらを支払います(したがって、両方のIMEショートカットと私のメニューバーのアプリアイコンがスペースを占有する必要はありません)。また、使用するアイコンをカスタマイズできるようにしたいと思います。たとえば、US QWERTYに近いカナダのフランス語入力を使用したいのですが、カナダの国旗は「フランス語」を象徴していないため、フランスの国旗を見たいです私。それらのものはそれを素晴らしいものにするでしょう!
iconoclast

警告:過去にIMEShortcutsをまだダウンロードしていない場合(ドメイン登録の有効期限が切れ、Chrome拡張マルウェアを含むスクワットページに置き換えられる前)、対処されるまでrockcell.comから何も取得しないでください。
ecmanaut

1

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

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

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


Webサイトで入力ソースの柔軟な使用に関連するものは見つかりませんでした。ロシア語/英語に関連するハードコードされたアクションのみが見つかりました。詳しく説明してもらえますか?
ダニエルベック

柔軟ではありません。必要な言語である英語とロシア語(そして現在はエストニア語)への切り替えをサポートしているだけです。また、任意のキーの組み合わせをそれらのアクションにマッピングできます。私の場合、言語に切り替えます。
ナイケ

Karabinerでこれを設定する方法を見つけるのに苦労しています。
イヴァンバラショフ

1

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

そして、必要なものすべて:

    key code 49 using command down

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

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


1

Found kawa-まさにあなたのニーズを満たす非常にシンプルなアプリ。ショートカットを設定して、必要な入力ソースに直接切り替えます。


1
スーパーユーザーへようこそ。お読みくださいソフトウェアを推薦する方法その後、編集し、少なくとも最低限必要な情報(中項目含めるようにあなたの答えを大胆に)。この情報のない投稿は削除される場合があります。貢献してくれてありがとう。
Twisty Impersonator

0

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

がんばろう、


1
彼はすでに言語を切り替える方法を知っています。特定の言語に切り替えることを望んでいます。おそらく2つ以上の言語がアクティブになっているからです。
ダニエルベック

はい、ダニエルが言ったとおりです。3つの入力言語があり、特定の言語を選択する必要があります。
ニケ

ごめん...質問を誤解したに違いない。ホットキーで言語を切り替える方法を作ろうとしていると思いました。
デビッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.