Page 1 of 9

MacroEx — запуск макросов нетрадиционными способами

Posted: Sun 20 Jul, 2014 00:42
by John Doe
Есть полезнейшая возможность в MacroLib — запуск макросов удержанием, двойным нажатием, и др.
Хорошо бы подобное и в родные макросы (тикет на мантисе есть).

А пока попробуем приблизится к решению задачи имеющимися средствами.

Предлагаю скрипт MacroEx, расширяющий возможности запуска макросов следующим образом:
  1. В имени клавиши через двоеточие теперь можно указывать дополнительные модификаторы Hold и Double:
    • key:Double — макрос будет выполнен при двукратном нажатии клавиши (в течении 300 мс, не отпуская клавиши-модификаторы)
    • key:Hold — макрос будет выполнен при удержании (>300 мс)
      Пример:
  2. Поддерживаются последовательности из двух нажатий, перечисленные через "-":
    • key-key2 — макрос будет выполнен при нажатии последовательности клавиш.
      Последовательность следует нажимать так: .
      Если вторая клавиша последовательности в течении секунды не будет нажата, то появится подсказка: из описаний возможных макросов.
      Пример:
    На один и тот же key можно назначить произвольное число макросов, конфликты разрешаются по правилам, принятым в LuaMacro.
    Макросы с модификаторами не лишают указанную комбинацию исходного значения: короткое нажатие выполнит исходное действие (или макрос, если назначен).
Ограничения:
  • В качестве key поддерживаются только комбинации клавиш с модификаторами Ctrl/Alt/Shift.
Установка: достаточно расположить прилагаемый macroEx.lua где-либо в scripts.

Re: MacroEx — запуск макросов удержанием, двойным нажатием,

Posted: Sun 20 Jul, 2014 17:04
by John Doe
Предлагаю модуль MacroEx, реализующий требуемую функциональность (с некоторыми ограничениями).

Re: MacroEx — запуск макросов удержанием, двойным нажатием,

Posted: Mon 21 Jul, 2014 06:05
by AleXH
hold/doubletap-макросы имеют приоритет перед обычными, что позволяет им более-менее прозрачно сосуществовать
между собой их (hold/doubletap) тоже надо проранжировать

MacroEx — запуск макросов удержанием, двойным нажатием,

Posted: Mon 21 Jul, 2014 14:03
by John Doe
Небольшое усовершенствование.
— hold/doubletap-макросы имеют приоритет перед обычными, что позволяет им более-менее прозрачно сосуществовать
— можно задать hold и doubletap одновременно

MacroEx — запуск макросов удержанием, двойным нажатием,

Posted: Tue 22 Jul, 2014 18:39
by John Doe
В идеале хотелось бы определять все действия независимо, например:

Надеюсь, что подобное когда-нибудь будет реализовано и в LuaMacro.

MacroEx — запуск макросов удержанием, двойным нажатием,

Posted: Tue 29 Jul, 2014 20:12
by John Doe
Новая функция: запуск макросов последовательностью нажатий.

Не так давно обсуждалось в теме MacroLib.
Хотя сама идея далеко не нова, на форуме обсуждалось и раньше, а на мантисе об этом из самых первых тикетов.

Сейчас встроенные средства LuaMacro уже позволяют легко достичь похожей функциональности, используя меню конфликта макросов.
Однако такой подход накладывает ряд ограничений:

Представляю реализацию запуска макросов последовательностью нажатий без использования меню.
Особенность: функция первой клавиши, активирующей начало последовательности, не теряется!
Это важно, поскольку в фаре не так много свободных сочетаний.

Работает так: последовательность ожидается только до тех пор, пока удерживается модификатор.
Если же отпустить модификатор, то будет задействована штатная функция клавиши (или даже другой макрос, если назначен).

Следует учитывать, что такой подход накладывает свои ограничения:

Использование:

Обновлённая версия в шапке.

Re: MacroEx — запуск макросов нетрадиционными способами

Posted: Thu 07 Aug, 2014 22:43
by John Doe
Новая функция: таблица sequence может содержать поле help.
В этом случае, если в течении секунды не будет нажата следующая клавиша последовательности, то на экран будет выведено сообщение с текстом, заданным в help.

Практический пример использования можно увидеть в наборе макросов turbo — работа с выделением в редакторе.

Обновлённая версия в шапке.

P.S.
Дальнейшее развитие будет идти в направлении, описанном тут (если конечно не будет лучших предложений).

Re: MacroEx — запуск макросов нетрадиционными способами

Posted: Mon 18 Aug, 2014 00:58
by John Doe
Обновление:
  • MacroEx больше не является модулем, его не требуется как-то подключать, для использования достаточно поместить в папку scripts.
  • Больше нет никакого особого синтаксиса, вместо этого аналогично MacroLib в самом имени клавиши можно указать через двоеточие "модификаторы" Hold или Double, или вторую клавишу последовательности.
Всё в шапке.

Re: MacroEx — запуск макросов нетрадиционными способами

Posted: Mon 18 Aug, 2014 07:24
by Max Rusov
Синтаксис key:key2 кажется не очень удачным. Может лучше: key+key2+... ?

Re: MacroEx — запуск макросов нетрадиционными способами

Posted: Mon 18 Aug, 2014 08:06
by Wave
А в зачем было переделывать с модуля на скрипт?
Теперь как минимум скрипты «turbo» тоже надо переделывать.

Re: MacroEx — запуск макросов нетрадиционными способами

Posted: Mon 18 Aug, 2014 08:40
by John Doe
Max Rusov wrote:Синтаксис key:key2 кажется не очень удачным. Может лучше: key+key2+... ?
Да, пожалуй...
Что касается второго "+", то на данный момент не поддерживаются последовательности длиннее 2х нажатий.
И не уверен что это может быть полезно.

Re: MacroEx — запуск макросов нетрадиционными способами

Posted: Mon 18 Aug, 2014 08:55
by John Doe
Wave wrote:А в зачем было переделывать с модуля на скрипт?
Модуль или нет — не принципиально, а важно другое: теперь каждое определение никак не зависит от остальных.
Это значит что отдельные макросы не обязаны быть собраны в одном общем определении, а могут быть как угодно разбиты по файлам.
И это отнюдь не мелочи, ведь теперь в одном файле легко собрать макросы c разными хоткеями, использующие общие переменные/функции.

Плюс, такая система гибче, поскольку каждый макрос может иметь собственные условия срабатывания (flags,mask,priority,condition).

P.S.
turbo пока работает со старым модулем. Обновление выложу когда будет готово.

Re: MacroEx — запуск макросов нетрадиционными способами

Posted: Mon 18 Aug, 2014 11:56
by HaRT
John Doe wrote:на данный момент не поддерживаются последовательности длиннее 2х нажатий.
И не уверен что это может быть полезно.
А как же всякие Fatality, IDDQD и т.п.? :laugh:

Re: MacroEx — запуск макросов нетрадиционными способами

Posted: Mon 18 Aug, 2014 12:09
by John Doe
:ROFL:

Re: MacroEx — запуск макросов нетрадиционными способами

Posted: Tue 19 Aug, 2014 20:24
by John Doe
Отдельно не расписано, но обращаю внимание, что работают и все комбинации клавиш-модификаторов , и различаются правые/левые .