切换到特定输入源

切换到特定输入源

在 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快捷键,适用于 Sierra。您可以为任何特定输入法分配自定义快捷方式。请试一试。如果你们发现任何错误,我很乐意提供帮助。

还,登山扣(称为 KeyRemap4MacBook)是一款出色的 Mac 键盘自定义程序。但它有点复杂,目前在 Sierra 上无法使用。如果您使用的是 Yosemite 或 El Capitan,这将是另一个不错的选择。

相关内容