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

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

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

Postby John Doe » Sun 20 Jul, 2014 00:42

Есть полезнейшая возможность в MacroLib — запуск макросов удержанием, двойным нажатием, и др.
Хорошо бы подобное и в родные макросы (тикет на мантисе есть).

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

Предлагаю скрипт MacroEx, расширяющий возможности запуска макросов следующим образом:
  1. В имени клавиши через двоеточие теперь можно указывать дополнительные модификаторы Hold и Double:
    • key:Double — макрос будет выполнен при двукратном нажатии клавиши (в течении 300 мс, не отпуская клавиши-модификаторы)
    • key:Hold — макрос будет выполнен при удержании (>300 мс)
      Пример:
  2. Поддерживаются последовательности из двух нажатий, перечисленные через "-":
    • key-key2 — макрос будет выполнен при нажатии последовательности клавиш.
      Последовательность следует нажимать так: .
      Если вторая клавиша последовательности в течении секунды не будет нажата, то появится подсказка: из описаний возможных макросов.
      Пример:

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

Ограничения:
  • В качестве key поддерживаются только комбинации клавиш с модификаторами Ctrl/Alt/Shift.

Установка: достаточно расположить прилагаемый macroEx.lua где-либо в scripts.
Attachments
macroEx-3.2.7z
(3.69 KiB) Downloaded 60 times

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Postby sToLp » Mon 11 Jul, 2016 08:27

Latest post of the previous page:

John Doe wrote:key:Double — макрос будет выполнен при двукратном нажатии клавиши (в течении 300 мс, не отпуская клавиши-модификаторы)
А нельзя ли сделать и по-другому — чтобы дважды жать именно на клавиши-модификаторы, а затем уже, отпустив их, жать один раз на "целевую" клавишу? Полагаю, что так пользователю удобнее было бы.

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

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

Postby John Doe » Mon 11 Jul, 2016 08:29

Пример?

User avatar
HaRT
Moderator
Posts: 7954
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

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

Postby HaRT » Mon 11 Jul, 2016 09:50

sToLp wrote:дважды жать именно на клавиши-модификаторы, а затем уже, отпустив их, жать один раз на "целевую" клавишу? Полагаю, что так пользователю удобнее было бы.
Полагаю, что иногда пользователю это будет даже чисто физически сложнее. К тому же нажатие–отпускание сочетания модификаторов нередко является самостоятельным шоткатом. Поэтому предлагаю оставить, как сейчас.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Postby sToLp » Mon 11 Jul, 2016 11:15

John Doe wrote:Пример?
Дважды нажать LCtrlScrollLock (тоже с Apps или Pause), а затем уже букву H явно проще, чем одновременно все три. Да и даже просто дважды нажать Shift, а уже затем (м.б. даже той же освободившейся рукой) другую клавишу — это проще, чем жать их одновременно одной рукой, а тем более если двумя.

HaRT wrote:
sToLp wrote:дважды жать именно на клавиши-модификаторы, а затем уже, отпустив их, жать один раз на "целевую" клавишу? Полагаю, что так пользователю удобнее было бы.
Полагаю, что иногда пользователю это будет даже чисто физически сложнее.
Задумался над этим, но так и не понял как может одномоментное нажатие меньшего количества клавиш оказаться физически сложнее, чем нажатие большего их количества.
HaRT wrote:К тому же нажатие–отпускание сочетания модификаторов нередко является самостоятельным шоткатом.
Так, вроде бы, и хорошо же — нажали их дважды подряд (ТукТук), а потом их же в третий раз (-Тук). Имхо, это вполне удобно.

User avatar
HaRT
Moderator
Posts: 7954
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

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

Postby HaRT » Mon 11 Jul, 2016 11:46

sToLp wrote:Source of the post как может одномоментное нажатие меньшего количества клавиш оказаться физически сложнее
Как я понял, Вы предлагаете нажать сочетание модификаторов, отпустить их все и нажать одновременно снова. Правильно? При таком подходе очень просто недожать какой-то модификатор или отпустить прежде времени. Традиционный же подход — это просто держать их нажатыми, а отпустить–нажать только одну клавишу — ключевую. Т.е. одним пальчиком пошевелить вверх–вниз.
Поэтому я считаю, что если уж и реализовывать такой режим, то не вместо имеющегося, а в дополнение к нему; соответственно, и назвать иначе. Если John Doe идея понравится, то я готов помочь придумать обозначение.
sToLp wrote:Source of the post нажали их дважды подряд (ТукТук), а потом их же в третий раз (-Тук)
Я вообще не об этом, а о том, что одиночное (более-менее) одновременное нажатие и последующее отпускание группы модификаторов — это иное действие, нежели их нажатие, затем нажатие–отпускание ключевой клавиши, а затем отпускание модификаторов.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Postby sToLp » Mon 11 Jul, 2016 14:43

HaRT wrote:Source of the postКак я понял, Вы предлагаете нажать сочетание модификаторов, отпустить их все и нажать одновременно снова. Правильно?
Правильно.

HaRT wrote:Source of the postодновременное нажатие и последующее отпускание группы модификаторов — это иное действие, нежели их нажатие, затем нажатие–отпускание ключевой клавиши, а затем отпускание модификаторов
Точно, иное.

HaRT wrote:Source of the postПри таком подходе очень просто недожать какой-то модификатор или отпустить прежде времени
А Вы в данном случае не драматизируете, часом? Так ли уж сложно дожать одну-две-три-четыре (CtrlAltShiftWin, к примеру) клавиши? Усилий то физических, вроде бы, не особо нужно, одна только сосредоточенность.

HaRT wrote:Source of the postТрадиционный же подход — это ...
John Doe в данной теме ведь испытания именно нетрадиционных подходов проводит, вроде.

HaRT wrote:Source of the postесли уж и реализовывать такой режим, то не вместо имеющегося, а в дополнение к нему
Так я, вроде бы и писал с самого начала:
sToLp wrote:Source of the post А нельзя ли сделать и по-другому


HaRT wrote:Source of the postЕсли John Doe идея понравится, то я готов помочь придумать обозначение
Подобная готовность много значит для поддержания командного духа. Заранее спасибо!

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Postby sToLp » Wed 13 Jul, 2016 14:11

sToLp wrote:А нельзя ли сделать ... чтобы дважды жать именно на клавиши-модификаторы, а затем уже, отпустив их, жать один раз на "целевую" клавишу?
По зрелому размышлению, полагаю, что было бы очень хорошо и достаточно и того, чтобы макросы могли срабатывать просто на двойное нажатие модификаторов и их сочетаний, даже без привязки этого действия к последующему нажатию на другие клавиши. Ведь заинтересованный пользователь при надобности мог бы тогда разнообразно ветвить это действие с помощью меню "Выполнить макрос" или пользовательских меню.

User avatar
HaRT
Moderator
Posts: 7954
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

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

Postby HaRT » Wed 13 Jul, 2016 14:27

sToLp wrote:Source of the post двойное нажатие модификаторов и их сочетаний, даже без привязки этого действия к последующему нажатию на другие клавиши
Кстати, да, сперва двойное нажатие чего-то, а затем какое-то нажатие ещё чего-то — это же ведь уже аккорд, а поддержка аккордов — это несколько другое, хотя тоже поддержано (до определённой степени) macroEx'ом.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

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

Postby John Doe » Wed 13 Jul, 2016 17:03

sToLp wrote:Source of the post было бы очень хорошо и достаточно и того, чтобы макросы могли срабатывать просто на двойное нажатие модификаторов и их сочетаний,
Приведите примеры желаемых комбинаций

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Postby sToLp » Wed 13 Jul, 2016 18:05

Банальные Ctrl, Alt, Shift, CtrlAlt, CtrlShift, AltShift, CtrlAltShift.

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

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

Postby John Doe » Wed 13 Jul, 2016 19:50

sToLp wrote:Source of the post Банальные Ctrl, Alt, Shift

Code: Select all

local maxDelay = 500

local t = 0
Macro {
  area="Editor"; key="Ctrl";
  condition=function()
    local t1 = Far.UpTime
    local delay = t1-t
    t = t1
    return delay<maxDelay
  end;
  action=function()
    far.Message"tada!"
  end;
}

Пока что вот так делайте. Можно реализовать и в общем виде.
Да, неплохо бы как-то интегрировать эту возможность в MacroEx, но не обещаю.

sToLp wrote:Source of the post CtrlAlt, CtrlShift, AltShift
Такого пока вообще не различается, но подумываю сделать, в рамках другого скрипта.

sToLp wrote:Source of the post CtrlAltShift
Это тоже возможно, но на практике не слишком удобно, имхо врядли стоит усложнять простой скрипт.
(но вы для себя всегда можете допилить конечный макрос, добавив дополнительное условие)

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Postby sToLp » Wed 13 Jul, 2016 20:47

John Doe wrote:
sToLp wrote:Source of the post Банальные Ctrl, Alt, Shift
... Пока что вот так делайте.
Работают! Спасибо!

John Doe wrote:
sToLp wrote:Source of the post CtrlAlt, CtrlShift, AltShift
Такого пока вообще не различается, но подумываю сделать, в рамках другого скрипта.
Хорошо бы, однако.

John Doe wrote:
sToLp wrote:Source of the post CtrlAltShift
Это тоже возможно, но на практике не слишком удобно, имхо врядли стоит усложнять простой скрипт.
Это особое сочетание, и поэтому желательно было бы иметь его "двойник", независимый от нативного "однораза".

John Doe wrote:(но вы для себя всегда можете допилить конечный макрос, добавив дополнительное условие)
А вот это для моего уха звучит как-то совершенно загадочно.

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

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

Postby John Doe » Wed 13 Jul, 2016 20:54

sToLp wrote:Source of the post независимый от нативного "однораза".
Не знаю о каком одноразе речь, ведь сам фар не различает такие комбинации для макросов.

sToLp wrote:Source of the post А вот это для моего уха звучит как-то совершенно загадочно.
Это значит что если (например) будет предоставлена возможность назначить макрос на "Ctrl+Alt", то несложно добавить в макрос на Alt дополнительный condition с проверкой нажат ли Ctrl.
В общем пробовать надо.

P.S.: раз эти макросы на отпускание срабатывают, значит Ctrl (например) должен продолжать удерживаться и при отпускании..

User avatar
zg
zero-gravity
Posts: 5227
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Postby zg » Wed 13 Jul, 2016 20:59

John Doe wrote:ведь сам фар не различает такие комбинации для макросов.
в смысле?
Image

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

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

Postby John Doe » Thu 14 Jul, 2016 07:13

Я о комбинациях одних только модификаторов, тех что вызывают макросы при отпускании.

User avatar
John Doe
Бюрократ
Posts: 11048
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 10 times
Been thanked: 63 times

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

Postby John Doe » Fri 22 Jul, 2016 14:33

John Doe wrote:Source of the post Это значит что если (например) будет предоставлена возможность назначить макрос на "Ctrl+Alt", то несложно добавить в макрос на Alt дополнительный condition с проверкой нажат ли Ctrl.
В общем пробовать надо.
Попробовал.
Ничего не выйдет, т.к. фар сейчас не запускает макрос на Alt при нажатом Ctrl.

User avatar
sToLp
Posts: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Postby sToLp » Fri 22 Jul, 2016 15:15

John Doe wrote:Source of the post фар сейчас не запускает макрос на Alt при нажатом Ctrl

Поупражнявшись с макросами, назначенными на двойное нажатие на Ctrl, Alt и Shift Source of the post, убедился в удобстве этой возможности. Поэтому весьма желательно, чтобы макросы и на двойное нажатие на CtrlAlt, CtrlShift и AltShift тоже появились бы.


Return to “Полезные макросы и скрипты”

Who is online

Users browsing this forum: No registered users and 1 guest