切換到特定輸入來源

切換到特定輸入來源

在Mac OS X中,有一個鍵盤快速鍵可以切換之間啟動的輸入來源。

替代文字

是否可以切換特定的語言?因此,如果您有 3 種輸入法,則可以有 3 個捷徑:Ctrl-1英語、Ctrl-2西班牙語和Ctrl-3俄語。

答案1

我向您展示最醜陋的“解決方案”:

  • 啟用對輔助設備的支持系統偏好設定 » 通用訪問,
  • 並在功能表列中顯示輸入來源選單系統偏好設定 » 語言和文字
  • 確保Ctrl-F8已定義快捷方式將焦點移至狀態選單系統偏好設定 » 鍵盤 » 鍵盤快速鍵 » 鍵盤與文字輸入
  • 確保「輸入來源」選單是最左側的選單項,可以按住拖曳來移動Cmd

使用AppleScript Editor並編寫三個腳本,每個腳本都包含以下程式碼:

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

為每種語言儲存一次,切換語言名稱。如果您想按不同的鍵,或指定與 不同的鍵Ctrl-F8,請用鍵碼替換這裡。您也可以透過插入一些內容來將「輸入來源」選單從最左邊的位置移動右箭頭按鍵。

根據需要呼叫腳本,例如使用應用程式啟動器(Quicksilver、Launchbar 等),或使用 Automator 將它們包裝在服務中,並在中為它們分配鍵盤快捷鍵系統偏好設定 » 鍵盤 » 鍵盤快速鍵 » 服務

答案2

如果您知道要切換到的鍵盤佈局的名稱,我在 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”。

答案3

一種選擇是下載改變輸入為 shell 指令指派快捷方式喜歡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第一個設定也適用於 option-command-E。請參閱來源鍵碼值預定義設定

答案4

我知道這是一個老問題。但即使到了2016年底,我仍然沒有找到一個簡單又好的解決方案。因此,我做了IME快捷方式,適用於塞拉利昂。您可以為任何特定輸入法指派自訂快速鍵。請嘗試一下。如果你們發現任何錯誤,我很樂意提供協助。

也,卡拉賓納(稱為 KeyRemap4MacBook)是一款出色的 Mac 鍵盤自訂器。但它有點複雜,目前在 Sierra 上被破壞了。如果你使用 Yosemite 或 El Capitan,這將是另一個不錯的選擇。

相關內容