Mousetroke GitHub
Русский ▾
Содержание руководства

Синтаксис отправки клавиш#

Начните с сочетания клавиш#

В Послать клавиши вставьте ^c, чтобы послать Ctrl+C в Windows, или #c, чтобы послать Command+C на Mac. Можно также нажать Запись, нажать сочетание и нажать Готово. Lua использует тот же синтаксис через ms.keys(sequence).

Обычные символы означают клавиши в позициях американской клавиатуры. abc нажимает A, B, C подряд; прописные ABC не добавляют Shift. Используйте +a для Shift+A. Для Юникода или фиксированного текста см. текст и экранирование и рецепты буфера обмена.

Модификаторы и группы#

ПрефиксWindowsMac
^CtrlControl ⌃
%AltOption ⌥
+ShiftShift ⇧
#WinCommand ⌘

Префикс применяется к следующей клавише или группе в скобках. ^+t посылает Ctrl+Shift+T. ^(ac) применяет Ctrl и к A, и к C. ^ac применяет Ctrl только к A. Группы можно вкладывать; используйте парные скобки. Модификаторы группы присоединяются к каждому нажатию клавиши, поэтому не рассчитывайте, что модификатор непрерывно удерживается между клавишами. Голый завершающий модификатор — не нажатие клавиши: используйте, например, {CTRL}, когда нужна сама клавиша-модификатор.

Lua ms.is_keys_pressed проверяет объединение всех клавиш и модификаторов на момент запроса на обеих платформах: ^ac требует, чтобы Control, A и C были нажаты вместе. Любая сторона удовлетворяет префиксу; явные имена {LCTRL} / {RCTRL} сохраняют сторону. Повторы игнорируются; шаги ожидания, текста, мыши или колеса возвращают false. Последовательность прошлых нажатий не распознаётся.

Именованные клавиши, повторы и задержки#

Используйте {ENTER} для Enter. Имена не зависят от регистра. {LEFT 3} нажимает Left три раза. Положительное число повторяет клавишу; ноль или отрицательное число сводится к одному. {SLEEP 100} ждёт 100 мс; требуется неотрицательное целое. Отделяйте имя и его аргумент пробелом.

Пример: ^c{SLEEP 100}^v копирует, коротко ждёт, затем вставляет в Windows. Эквивалент Mac — #c{SLEEP 100}#v.

Таблица ниже перечисляет имена, принимаемые разборщиком, включая псевдонимы и все нумерованные имена F/цифрового блока. Один символ ASCII, цифра или поддерживаемый знак пунктуации американской клавиатуры также может стоять в фигурных скобках, например {a} или {+}.

ИменаЗначение
{ENTER}, {RETURN}Enter
{ESC}Escape
{TAB}Tab
{BACKSPACE}Backspace
{SPACE}Пробел
{CAPSLOCK}Caps Lock
{INSERT}, {INS}Insert (только Windows)
{DELETE}, {DEL}Delete / прямое удаление
{HOME}, {END}Home / End
{PGUP}, {PGDN}Page Up / Page Down
{UP}, {DOWN}, {LEFT}, {RIGHT}Клавиши со стрелками
{PRTSC}Print Screen (только Windows)
{BREAK}Break (только Windows)
{MEDIA_NEXT}, {MEDIA_PREV}, {MEDIA_STOP}, {MEDIA_PLAY}, {MEDIA_PLAY_PAUSE}Медиаклавиши (только Windows в последовательностях клавиш)
{VOLUME_MUTE}, {VOLUME_DOWN}, {VOLUME_UP}Клавиши громкости (только Windows в последовательностях клавиш)
{CTRL}, {ALT}, {SHIFT}Control / Alt (на Mac Option) / Shift
{LCTRL}, {RCTRL}, {LSHIFT}, {RSHIFT}, {LALT}, {RALT}Левые/правые клавиши-модификаторы; Alt на Mac — Option
{LWIN}, {WIN}, {RWIN}Клавиша Windows; на Mac Command
{F1}, {F2}, {F3}, {F4}, {F5}, {F6}, {F7}, {F8}, {F9}, {F10}, {F11}, {F12}, {F13}, {F14}, {F15}, {F16}, {F17}, {F18}, {F19}, {F20}, {F21}, {F22}, {F23}, {F24}Функциональные клавиши; Mac поддерживает F1–F20
{N0}, {N1}, {N2}, {N3}, {N4}, {N5}, {N6}, {N7}, {N8}, {N9}Цифры цифрового блока 0–9
{MOUSE_LEFT}, {MOUSE_RIGHT}, {MOUSE_MIDDLE}, {MOUSE_X1}, {MOUSE_X2}Щелчки мыши (только Windows)
{MOUSE_WHEEL}, {MOUSE_HWHEEL}Колесо: напр. {MOUSE_WHEEL 120}, {MOUSE_HWHEEL -120} (только Windows)
{SLEEP}Задержка: напр. {SLEEP 100}, миллисекунды

Кнопки мыши и колесо#

Windows поддерживает {MOUSE_LEFT}, {MOUSE_RIGHT}, {MOUSE_MIDDLE}, {MOUSE_X1} и {MOUSE_X2} как щелчки. {MOUSE_LEFT 2} посылает два щелчка; указатель при этом не перемещается.

{MOUSE_WHEEL 120} прокручивает на одну зарубку вверх; -120 прокручивает вниз. {MOUSE_HWHEEL 120} прокручивает вправо; -120 влево. Аргумент — знаковое приращение колеса, а не число повторов. Это соглашение внедряемого ввода; оно отличается от знака, используемого записанными шагами колеса жеста.

Mac разбирает эти лексемы, но пропускает действия мыши и колеса при выполнении ввода. Их нельзя использовать, чтобы синтезировать щелчки или прокрутку Mac через ms.keys.

Текст и экранирование#

Текстовый режим доступен только с Lua ms.keys(s, true); редактор «Послать клавиши» всегда использует режим клавиш. Обычные символы становятся текстом Юникода, но ^, %, +, #, скобки и открывающая фигурная скобка по-прежнему начинают синтаксис. Одиночные символы в фигурных скобках остаются нажатиями клавиш и в текстовом режиме.

Для сочетаний внутри текстового режима заключите клавишу в скобки: ^{c} посылает Ctrl+C, а #{c} посылает Command+C. Незаключённое ^c в этом режиме выдаёт текст c и отбрасывает модификатор. Можно также сделать отдельный вызов ms.keys("^c") в обычном режиме клавиш.

Литеральный символЗапись в последовательности
^{^}
%{%}
+{+}
#{#}
({(}
){)}
{{{}
}} (без скобок)

Обратная косая черта не является экранированием последовательности клавиш. В Lua-строке в кавычках пишите "\\" для одной обратной косой или используйте длинные скобки. Для произвольного текста с символами синтаксиса метод буфера обмена избегает обоих уровней экранирования.

Частые сочетания клавиш#

Они зависят от настроек сочетаний целевого приложения и операционной системы.

НазначениеПоследовательность WindowsПоследовательность Mac
Копировать^c#c
Вставить^v#v
Вырезать^x#x
Выделить всё^a#a
Отменить^z#z
Новая вкладка^t#t
Закрыть вкладку^w#w
Вернуть закрытую вкладку^+t#+t
Следующая вкладка^{TAB}^{TAB}
Предыдущая вкладка^+{TAB}^+{TAB}
Сменить программу%{TAB}#{TAB}
Предыдущий/следующий рабочий стол#^{LEFT} / #^{RIGHT}^{LEFT} / ^{RIGHT}
Снимок области экрана#+s#+4
Показать рабочий стол#d{F11}
Диспетчер задач / Activity Monitor^+{ESC}Используйте «Открыть программу»: com.apple.ActivityMonitor
Заблокировать экран#l^#q

Почему нельзя отправить Ctrl+Alt+Del#

Ctrl+Alt+Del — это Secure Attention Sequence Windows. Windows игнорирует обычный синтетический ввод для этой последовательности, поэтому ^%{DEL} не может открыть этот экран безопасности. Используйте ^+{ESC} для диспетчера задач, #l для блокировки или действие Выполнить команду с shutdown /l, чтобы выйти из системы (это завершает сеанс).

Ограничения и особенности платформ#

Общий разборщик не имеет общего ограничения длины строки или числа повторов. Числа повторов и задержки хранятся как беззнаковые 32-битные значения; приращения колеса — как знаковые 32-битные. Значения вне диапазона могут обернуться при преобразовании, поэтому используйте небольшие практичные числа и задержки. Неверное имя клавиши или отсутствующий обязательный аргумент даёт ошибку разбора; редактор проверяет во время ввода.

Windows выполняет последовательности в рабочих потоках и ждёт {SLEEP ms}. Mac посылает ввод пакетами по таймеру. Строки действий Mac длиннее 16 384 байт отклоняются; для уже разобранного ввода Lua пределы — 16 384 действия и 16 384 байта на текстовое действие. Очередь ожидания вмещает до 64 записей; лишний ввод отбрасывается и записывается в журнал.

На Mac доступны F1–F20, цифры цифрового блока и сопоставленные клавиши навигации. Insert/INS, PRTSC, BREAK, F21–F24, лексемы медиа/громкости и лексемы мыши/колеса не поддерживаются и пропускаются. Для медиа и громкости используйте Медиа и система. ms.keys_down и ms.keys_up есть только в Windows; см. Lua API.

Начните с одного повседневного жеста

Скачайте Mousetroke бесплатно и настройте свой первый жест. Доступны версия для Windows и бета-версия для Mac.