В 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
Одним из вариантов будет загрузкаизменитьВходиназначить сочетания клавиш для команд оболочкинравиться 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>
Смотритечастная.xml документация.
VK_CHANGE_INPUTSOURCE_ENGLISH определен вvkchangeinputsourcedef.xml. Вы можете увидеть идентификаторы источников ввода из EventViewer.app. Без, | ModifierFlag::NONE
например, первая настройка также будет применяться к option-command-E. Смотрите источник длязначения ключевых кодовипредопределенные настройки.
решение4
Я знаю, что это старый вопрос. Но даже в конце 2016 года я все еще не нашел простого и приятного решения. Поэтому я сделалIMEСочетания клавиш, работает на Sierra. Вы можете назначить настраиваемую комбинацию клавиш для любого конкретного метода ввода. Пожалуйста, попробуйте. И если вы, ребята, найдете какие-либо ошибки, я буду рад помочь.
Также,Карабин(известный как KeyRemap4MacBook) — отличный настройщик клавиатуры для Mac. Но он немного сложен и в настоящее время не работает на Sierra. Если вы используете Yosemite или El Capitan, это был бы еще один хороший выбор.