23

В Mac OS X есть сочетания клавиш для переключения между активированными источниками ввода.

альтернативный текст

Можно ли переключиться на определенный язык? Поэтому, если у вас есть 3 метода ввода, вы можете использовать 3 комбинации клавиш: Ctrl-1 для английского, Ctrl-2 для испанского и Ctrl-3 для русского.

8 ответов8

11

Я придумал немного более приятное решение в 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".

6

Один из вариантов - загрузить 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. Без | Например, | ModifierFlag::NONE первый параметр будет применяться к option-command-E. См. Источник для значений кода ключа и предопределенных настроек.

6

Представляю вам самое уродливое "решение":

  • Включить поддержку вспомогательных устройств в Системные настройки »Универсальный доступ,
  • и отображение меню «Источники ввода» в меню в Системных настройках »Язык и текст.
  • Убедитесь, что сочетание клавиш 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 и назначайте им сочетания клавиш в Системных настройках »Клавиатура» Сочетания клавиш »Службы.

4

Я знаю, что это старый вопрос. Но даже в конце 2016 года я все еще не нашел простого и приятного решения. Поэтому я сделал IMEShortcuts, работает на Sierra. Вы можете назначить индивидуальный ярлык для любого конкретного метода ввода. Пожалуйста, дайте ему шанс. И если вы, ребята, найдете какие-либо ошибки, я был бы рад помочь.

Кроме того, Karabiner (известный как KeyRemap4MacBook) является отличным настройщиком клавиатуры для Mac. Но это немного сложно и в настоящее время сломано на Сьерре. Если вы используете Yosemite или El Capitan, это был бы еще один хороший выбор.

1

Найдено Kawa - довольно простое приложение, чтобы удовлетворить именно ваши потребности. Сочетания клавиш для непосредственного переключения на нужный источник входного сигнала.

1

У меня есть другое решение, которое удовлетворило меня больше всего. KeyRemap4MacBook - это приложение, которое позволяет переназначать кнопки клавиатуры. Помимо прочего, он допускает некоторую, но не исчерпывающую поддержку смены языка. Так что у нас какая-то нестандартная конфигурация, она делает то, что я хочу.

Минусы: - стороннее приложение - только ограниченная языковая поддержка

Плюсы:- Концептуально немного приятнее, чем запуск скриптов в интерфейсе.

1

На AppleScript вы должны взять только cmd + "пробел" (или что-то другое, что вы меняете источник клавиатуры).

И все, что вам нужно:

    key code 49 using command down

49 - код кнопки «пробел» в ASCII для AppleScript.

PS: не забудьте получить доступ к вашей утилите AppleScript в Системных настройках.

0

По этой ссылке есть видео о том, как это сделать. У него уже есть горячий пирог с «команда + пробел», но горячая клавиша прожектора также «команда + пробел». Подчеркните, что горячая клавиша перезаписана, поэтому переключение языка не происходит. Видео в ссылке покажет вам, как изменить горячую клавишу, чтобы вы могли переключать горячую клавишу.

Удачи,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .