Переключіть на конкретне вхідне джерело


23

У Mac OS X є комбінації клавіш для переключення між активованими вхідними джерелами.

alt текст

Чи можливо перейти на певну мову? Отже, якщо у вас є 3 способи введення, у вас можуть бути три ярлики: Ctrl-1для англійської, Ctrl-2для іспанської та Ctrl-3для російської.


Розкладка клавіатури та мова інтерфейсу не залежать. А оскільки мова інтерфейсу застосовується лише після перезапуску програми, все, що ви отримуєте за допомогою ярлика, буде заперечуватись вимогою перезапустити програми все одно.
Даніель Бек

Мене не цікавить зміна мов інтерфейсу. Представляють інтерес лише мови введення.
Nikem

Я упорядкував і уточнив ваше запитання. Будь ласка, поверніться, якщо ви думаєте, що я зробив щось не так (я новачок у цьому).
Даніель Бек

Відповіді:


7

Представляю вашій увазі найгірше "можливе рішення":

  • Увімкніть підтримку допоміжних пристроїв у системних налаштуваннях »Універсальний доступ ,
  • та відображення меню джерел введення в меню в розділі Налаштування системи »Мова та текст .
  • Переконайтесь, що ярлик 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 і призначте їм комбінації клавіш у Налаштуваннях системи »Клавіатура» Комбінації клавіш »Сервіси .


1
@Nikem Це спрацювало?
Даніель Бек

1
Так, спрацювало.
Nikem

1
Anda, Daniel, хоча я вибрав інше рішення, все-таки дякую за те, що ти познайомив мене з Action Script і Services :)
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

Одним з варіантів були б завантажити 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. Перегляньте джерело значень основних кодів та попередньо визначених налаштувань .


4

Я знаю, що це старе питання. Але навіть наприкінці 2016 року я все одно не знайшов простого і приємного рішення. Тому я зробив IMEShortcuts , працює над Сьєррою. Ви можете призначити спеціальний ярлик для будь-якого конкретного способу введення. Будь ласка, дайте йому постріл. І якщо ви, хлопці, знайдете помилок, я б із задоволенням допомогла.

Також Karabiner (відомий як KeyRemap4MacBook) - це чудовий налаштування клавіатури для Mac. Але це трохи складно і зараз зламано на Сьєррі. Якщо ви використовуєте Yosemite або El Capitan, це був би ще один приємний вибір.


Дякуємо за IMEShortcuts! Це дуже приємно. Я б із задоволенням заплатив за це 5 доларів США, якщо ви додасте піктограми до меню, щоб відображати активну мову (тому мені не потрібно мати BOTH IMEshortcuts та піктограму програми в меню, що займає місце). Я також хотів би мати можливість налаштувати використаний значок - наприклад, я хочу використати канадський французький вклад, тому що він ближче до американської QWERTY, але я хочу побачити французький прапор, оскільки прапор Канади не символізує "французький" я. Ці речі зробили б це приголомшливо!
іконоборство

Слово попередження: якщо ви ще не завантажували IMEShortcuts в минулому (до того, як термін реєстрації домену закінчився і його замінили на скваттерну сторінку з хромовим розширенням зловмисного програмного забезпечення), не захоплюйте нічого з rockcell.com, поки це не буде вирішено.
еманаут

1

У мене є ще одне рішення, яке мене найбільше задовольнило. KeyRemap4MacBook - це програма, яка дозволяє перевпорядкувати кнопки клавіатури. Крім усього іншого, це дозволяє дещо, зовсім не вичерпно, підтримати зміни мови. Таким чином, ми користуємося певною конфігурацією.

Мінуси: - додатки сторонніх розробників - лише обмежена підтримка мови

Плюси: - Концептуально трохи приємніше, що працює сценарій в інтерфейсі


Я не знайшов нічого, пов'язаного з гнучким використанням джерел введення на веб-сайті, лише деякі жорстко закодовані дії, пов'язані з російською / англійською мовами. Чи можете ви докладно?
Даніель Бек

Це не гнучко. Просто трапляється, що він підтримує перехід на англійську та російську мови (і тепер естонські), які є потрібними мені мовами. І це дозволяє зіставити довільні комбінації клавіш на ці дії. Перехід до мови в моєму випадку.
Nikem

Мені важко знайти, як налаштувати це з Карабінером.
Іван Балашов

1

У AppleScript ви повинні зайняти лише cmd + "пробіл" (або щось інше, що ви змінюєте джерелом клавіатури).

І все, що вам потрібно:

    key code 49 using command down

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

PS: не забудьте отримати доступ до вашої утиліти AppleScript у налаштуваннях системи.


1

Знайдена кава - досить просте додаток, щоб точно відповідати вашим потребам. Клацніть ярлики для прямого переходу до потрібного джерела введення.


1
Ласкаво просимо до Супер Користувача. Прочитайте, як рекомендувати програмне забезпечення, а потім відредагуйте свою відповідь, щоб включити хоча б мінімальну необхідну інформацію (пункти виділені жирним шрифтом ). Пости без цієї інформації можуть бути видалені. Дякуємо за ваш внесок.
Я кажу, відновіть Моніку

0

На цьому посиланні є відео про те, як це зробити. У ньому вже є гарячий торт з "команда + пробіл", але в центрі уваги також є "команда + пробіл". Прожектор перекриває гарячу клавішу, тому переключення мови не відбувається. Відео у посиланні покаже вам, як змінити гарячу клавішу, щоб ви могли перемикати гарячу клавішу.

Щасти,


1
Він уже знає, як перемикатися між мовами, хоче переключитися на конкретну , оскільки, ймовірно, у нього активовано більше 2-х.
Даніель Бек

Так, саме так, як сказав Даніель. У мене є 3 мови введення, і потрібно вибрати конкретну.
Nikem

Вибачте ... Я, мабуть, неправильно зрозумів питання. Я думав, ти намагаєшся зробити спосіб перемикання між мовами гарячою клавішею.
Девід
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.