Горячие клавиши
Горячая клавиша — это триггер действия: сочетание клавиш, которое запускает действие. Отдельной страницы горячих клавиш нет. Горячая клавиша добавляется к действию на странице Действия, рядом с его жестами и вводимым текстом. У одного действия может быть несколько триггеров любого вида.
Добавление горячей клавиши к действию
- На странице Действия выберите группу приложений в поле Группа приложений, затем выберите действие (или создайте его).
- На карточке Триггеры нажмите + Горячая клавиша ①.
- Щёлкните поле Сочетание клавиш ②. Пока оно ждёт, в нём отображается Нажмите сочетание клавиш….
- Нажмите сочетание, например Ctrl+Shift+N. Поле его покажет.
- В расширенном режиме выберите Зарегистрировано ③ и Удерживаемые модификаторы ④ (см. ниже).
- Сохраните. Горячая клавиша заработает, как только движок получит сохранённую конфигурацию.
Во второй строке карточки триггера указано Зарезервировано в Windows или Пассивное отслеживание — два вида горячих клавиш (Зарезервированная или пассивная).
Расширенный режим. Зарегистрировано, Поглощать последнюю клавишу и Удерживаемые модификаторы отображаются только в расширенном режиме. В простом режиме новая горячая клавиша регистрируется в Windows и отпускает удерживаемые клавиши-модификаторы перед выполнением действия. Простой режим никогда не меняет значения, заданные в расширенном режиме.
Выбор клавиш
Поле сочетания клавиш записывает нажатое, а не даёт ему сработать: пока поле ждёт, Win+E не открывает проводник, а существующая горячая клавиша не выполняется.
- Сочетание — это любое число модификаторов (Ctrl, Shift, Alt, Win) и ровно одна другая клавиша. Одни модификаторы его не завершают: поле продолжает ждать другую клавишу.
- Последней клавишей может быть любая другая клавиша, включая функциональные клавиши, цифровую клавиатуру и клавиши, у которых нет имени в синтаксисе клавиш скриптов.
- Сочетание без модификатора, например одна F9, допускается. Зарезервированное, оно отнимает эту клавишу у всех программ (Зарезервированная или пассивная).
- Esc без модификатора отменяет ввод и оставляет поле без изменений. Esc с модификатором, например Shift+Esc, записывается.
- Левая и правая клавиши-модификаторы — один и тот же модификатор: горячая клавиша Ctrl+K срабатывает с любой клавишей Ctrl.
- Поле записывает, только пока окно настройки активно. Щелчок в другом месте прекращает запись.
Зарезервированная или пассивная
Горячая клавиша либо регистрируется в Windows (Зарегистрировано включено, по умолчанию), либо отслеживается пассивно (Зарегистрировано выключено).
| Зарезервировано в Windows | Пассивное отслеживание | |
|---|---|---|
| Получает ли клавиши программа на переднем плане? | Никогда, ни в одной программе. | Да, если только не включено Поглощать последнюю клавишу и действие этой горячей клавиши не относится к окну на переднем плане. |
| Если другая программа уже зарезервировала те же клавиши | Эта горячая клавиша не срабатывает. Input.Observer сообщает об этом (Клавиши, занятые другой программой). | Выполняется и то и другое: сочетание другой программы и это действие. |
| Пока движок отключён или приостановлен группой игнорирования | Клавиши по-прежнему отнимаются у всех программ, и ничего не выполняется. | Клавиши обычно доходят до программ, и ничего не выполняется. |
| Лучше всего подходит для | Клавиш, которые везде должны принадлежать Input.Observer. | Клавиш, которые должны обычно работать в программах, где действие не применяется, или клавиш, уже зарезервированных другой программой. |
Регистрация в Windows выполняется по одному разу для каждого отдельного сочетания всякий раз, когда движок загружает конфигурацию. Она не зависит от того, какое окно на переднем плане, какой профиль активен и относится ли действие к окну на переднем плане. Так задумано: регистрация горячей клавиши — это выбор владеть этими клавишами, чтобы никакая другая программа не смогла забрать их позже, а сохранение регистрации избавляет от снятия и повторной регистрации клавиш при каждой смене окна. Поэтому зарезервированная горячая клавиша, действие которой относится к другому профилю или другой программе, всё равно забирает свои клавиши и ничего не выполняет. Сочетание не регистрируется, если все использующие его действия выключены, его группа приложений выключена или у группы выключено Горячие клавиши работают здесь.
Поглощать последнюю клавишу
Для горячей клавиши с пассивным отслеживанием Поглощать последнюю клавишу (по умолчанию включено) не пропускает последнюю клавишу сочетания к программе на переднем плане: её нажатие, автоповтор и отпускание. Клавиши-модификаторы проходят всегда. Это действует, только когда эта горячая клавиша выполняет действие для окна на переднем плане; в остальных случаях клавиша проходит. У зарезервированной горячей клавиши этого выбора нет, потому что её клавиши и так удерживает Windows.
Поскольку клавиши-модификаторы проходят, Windows может реагировать на них самих. Если в сочетании с пассивным отслеживанием есть Alt или Win, программа на переднем плане может увидеть одиночное нажатие Alt и выделить строку меню, или Windows может открыть меню «Пуск». Input.Observer не может полностью это предотвратить. Если такое происходит, зарегистрируйте сочетание в Windows или выберите сочетание с Ctrl или Shift.
Удерживаемые модификаторы
Горячая клавиша срабатывает, пока вы ещё держите её клавиши-модификаторы. Иначе действие, вводящее текст, вводило бы его с нажатым Ctrl или Alt. Удерживаемые модификаторы позволяет выбрать между Отпустить, затем восстановить (по умолчанию для нового триггера) и Оставить нажатыми. Полные правила приведены на странице Модификаторы и время нажатия.
Одно выполнение на нажатие
Удержание горячей клавиши выполняет её действие один раз. Автоповтор клавиш Windows не запускает его снова; чтобы выполнить его ещё раз, отпустите последнюю клавишу и нажмите её снова. Это верно для обоих видов горячих клавиш.
Какое действие выполняется
У горячей клавиши нет окна под указателем. Она использует окно на переднем плане (с фокусом клавиатуры) в момент нажатия последней клавиши:
- Если окно входит в группу игнорирования, ничего не выполняется. Клавиши зарезервированной горячей клавиши по-прежнему не доходят до этого окна.
- Если окно принадлежит группе приложений с включённым Горячие клавиши работают здесь и группа действует в активном профиле, выполняется первое включённое действие этой группы в порядке сопоставления с точно таким сочетанием и видом горячей клавиши.
- Если в этой группе ничего не выполнилось, горячая клавиша откатывается к действиям глобальной группы, если только Резервный переход к глобальной группе не выключен у этой группы или на странице Общие.
- Окно, не принадлежащее ни одной группе приложений, сразу использует действия глобальной группы.
- Если ничего не совпало, ничего не выполняется.
Поэтому одно сочетание может выполнять разное действие в каждой группе приложений плюс глобальное действие везде в остальных местах. Зарезервированное сочетание, используемое в нескольких группах, регистрируется только один раз. Область действия и откат подробно описаны на странице Область действия и правила отката. Действия, ограниченные определёнными профилями, в других профилях пропускаются (Профили).
Когда горячие клавиши не срабатывают
Действия горячих клавиш не выполняются:
- пока рисуется жест;
- пока записывается макрос или идёт обучение жестам;
- пока движок отключён из трея или приостановлен, потому что в фокусе окно с Приостанавливать всё при фокусе (Группы игнорирования);
- в безопасном режиме, где вообще не регистрируется ни одна горячая клавиша.
Горячая клавиша остановки всех действий на странице Общие — исключение: она работает во всех этих состояниях, кроме безопасного режима.
Конфликты
Редактор действий показывает баннер на триггере и точку в строке действия в списке для каждого из следующих случаев:
| Баннер | Что это значит |
|---|---|
| Эти клавиши здесь использует другое действие | У двух действий в одной группе приложений одинаковые сочетание и вид. Выполняется то, что выше в списке; другое для этих клавиш никогда не выполняется. Баннер сообщает, какое побеждает. |
| Это сочетание клавиш используется дважды | Одно и то же сочетание зарезервировано в одном действии и пассивно в другом. На одно нажатие могут выполниться оба. Устраните это, изменив одно из них. |
| Эти клавиши останавливают все действия | Сочетание совпадает с горячей клавишей остановки всех действий на странице Общие. Его нажатие останавливает все действия вместо выполнения этого. |
| Ctrl+Break останавливает запись макроса | Зарезервированная горячая клавиша Ctrl+Break не даёт работать клавише остановки записи; останавливайте записи из значка в трее или со страницы Запись макросов. |
| На многих клавиатурах Ctrl+Alt вводит символы | Ровно Ctrl+Alt плюс символьная клавиша. В раскладках с клавишей AltGr её срабатывание вызывает ввод символа вроде € или @. Добавление Shift позволяет этого избежать. |
| Клавиша не задана | У триггера ещё нет сочетания, и он никогда не срабатывает. |
| Эти клавиши уже использует Windows или другая программа | См. Клавиши, занятые другой программой. |
Одно и то же сочетание в двух разных группах приложений — не конфликт: какое из них выполнится, решает окно на переднем плане (Какое действие выполняется).
Клавиши, занятые другой программой
Зарегистрировать сочетание в Windows может только одна программа. Если движок не может зарегистрировать одну из ваших горячих клавиш, он показывает одно сообщение Предупреждение конфигурации со списком всех сочетаний, которые не удалось зарегистрировать, каждый раз при загрузке конфигурации (при запуске, после сохранения или перезагрузки конфигурации). Эти горячие клавиши в этом сеансе не работают. Редактор действий помечает их как Эти клавиши уже использует Windows или другая программа. Windows сама тоже резервирует некоторые сочетания, например Win+L.
Чтобы это исправить, выберите другие клавиши, закройте программу, которая их держит, и выберите Перезагрузить конфигурацию в меню трея или выключите Зарегистрировано, чтобы отслеживать клавиши пассивно.
Если вы только что изменили или удалили действие, использовавшее эти клавиши, сначала сохраните: Input.Observer до тех пор удерживает собственную регистрацию.