Win, Apps, CapsLock [,...] в качестве модификаторов

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

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by John Doe »

В качестве модификаторов можно использовать LWin, RWin, Apps, CapsLock, NumLock, ScrollLock, Pause/Break, PrntScrn, и любые другие клавиши и сочетания не выполняющие действий, например допустимы комбинации вида CtrlB+A

Допускаются любые сочетания с обычными модификаторами Ctrl/Alt/Shift

Дополнительная функция: в качестве модификаторов различаются (отдельные) LShift, RShift, Shift

Установка: xmod.lua поместить в папку Macro\modules

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

Примечания:

Требования: Far 3 build > 4736

Связанные темы:
Attachments
xmod-2.2.7z
(2 KiB) Downloaded 199 times

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

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by John Doe »

Latest post of the previous page:

В шапке небольшое обновление
  • Исправление: теперь лево/правосторонние Ctrl и Alt работают по правилам luamacro (т.е. отдельно различаются L/R, а если не указано, то подразумеваются оба)
  • xShift переименован в просто Shift

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

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by John Doe »

Задумался над тем, чтобы изменить формат записи сочетаний модификаторов, как-то так:

Code: Select all

ScrollLock+CtrlAltA, ScrollLock+AltA
Pause+AltA, Pause+ShiftA, Pause+AltShiftA
Break+CtrlAltA, Break+CtrlAltShiftA
Apps+CtrlA, Apps+AltA
LWin+LAltA, LWin+CtrlA
LWin+ShiftA, LWin+Shift{, LWin+ShiftBS
Или даже так (не уверен)
Смысл: такой способ точнее отражает алгоритм работы скрипта, и (как мне кажется) даёт пользователю некоторое понимание его особенностей, в частности того, что указанные клавиши не становятся полноправными модификаторами (например нельзя скомбинировать две "новых" клавиши)

Возражения есть?
Могу предположить, что сейчас запись выглядит естественнее.
Технической необходимости менять её в общем-то нет, но..
В общем, нужен свежий взгляд.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by sToLp »

John Doe wrote:В шапке небольшое обновление
На текущий момент протестировал макросы, назначаемые на "CapsLock+Буква", NumLock+Буква и ScrollLock+Буква, в т.ч. во всевозможных сочетаниях с нативными модификаторами, с указанием и без указания левых и правых (Ctrl, LCtrl, RCtrl, Alt, LAlt, RAlt, Shift, CtrlAlt, LCtrlAlt, RCtrlAlt, CtrlShift, LCtrlShift, RCtrlShift, AltShift, LAltShift, RAltShift, CtrlAltShift, LCtrlAltShift и RCtrlAltShift). И если в сочетаниях со старыми, традиционными клавишами-модификаторами первыми нажимать на новые модификаторы, то опробованные макросы срабатывают вполне нормально.
John Doe wrote:Задумался над тем, чтобы изменить формат записи сочетаний модификаторов
На мой взгляд логичнее, нагляднее и удобнее было бы записывать шорткаты с новыми модификаторами с указанием их первыми простым способом типа CapsLockLCtrlA, NumLockRAltShiftA, ScrollLockRCtrlShiftA и т.п. И, по возможности, хорошо бы ещё подобрать сокращённые наименования клавиш наподобие Cl, Nl, Sl.

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

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by John Doe »

sToLp wrote: И если в сочетаниях со старыми, традиционными клавишами-модификаторами первыми нажимать на новые модификаторы, то опробованные макросы срабатывают вполне нормально.
Порядок не должен быть важен.
Я вовсе не имел ввиду, что нажимать на дополнительную клавишу-модификатор (LWin и пр.) надо перед C/A/S..

Но я вижу, что из предлагаемой мной записи можно сделать такой вывод..
sToLp wrote: И, по возможности, хорошо бы ещё подобрать сокращённые наименования клавиш наподобие Cl, Nl, Sl.
Это совсем несложно, но не уверен что полезно.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by sToLp »

John Doe wrote:Порядок не должен быть важен
Но при нажатии клавиш в последовательности LCtrl+ScrollLock lua:=mf.waitkey() показывает CtrlBreak, а при обратной последовательности (ScrollLock+LCtrl) — ScrollLock и т.п.
John Doe wrote:
sToLp wrote: И, по возможности, хорошо бы ещё подобрать сокращённые наименования клавиш наподобие Cl, Nl, Sl.
Это совсем несложно, но не уверен что полезно.
Опыт показывает, что сокращения не всегда сразу воспринимаются с лёгкостью, но потом, как правило, приживаются основательно. Т.е. это сугубо субъективно. Но обозначение клавиши с тремя согласными буквами подряд (scrolllock), это, по-моему, как-то через чур.

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

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by John Doe »

sToLp wrote: Но при нажатии клавиш в последовательности LCtrl+ScrollLock lua:=mf.waitkey() показывает CtrlBreak, а при обратной последовательности (ScrollLock+LCtrl) — ScrollLock и т.п.
И какой из этого следует сделать вывод?

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by sToLp »

John Doe wrote:
sToLp wrote: Но при нажатии клавиш в последовательности LCtrl+ScrollLock lua:=mf.waitkey() показывает CtrlBreak, а при обратной последовательности (ScrollLock+LCtrl) — ScrollLock и т.п.
И какой из этого следует сделать вывод?
Какой в сущности следует сделать вывод пока не знаю, но, кажется, можно отметить, что порядок нажатия клавиш фару может быть и не безразличен.

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

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by John Doe »

Для данного скрипта в текущей его реализации порядок безразличен.
Но.
В планах есть мысль переписать его с тем чтобы сделать возможным сосуществование с простыми макросами (уже назначенными на наш модификатор), и возможность использования в качестве модификаторов клавиш выполняющий по совместительству и другие действия.
Например тот же пробел: Space+A, ShiftSpace+A, ...

Вот тогда порядок будет важен.

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

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by John Doe »

Обновил Примечания:

В числе потенциальных клавиш-модификаторов перечислил также PrntScrn:
John Doe wrote: В качестве модификаторов можно использовать LWin, RWin, Apps, CapsLock, NumLock, ScrollLock, Pause/Break, PrntScrn, и любые другие клавиши и сочетания не выполняющие действий, например допустимы комбинации вида CtrlB+A
Отдельно обращаю внимание, что в качестве модификатора подходит любое сочетание, например CtrlB+A, ShiftSpace+A, и т.п.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by sToLp »

John Doe wrote: [*]Ограничение: в поле key допустимо указывать только одну клавишу
Вероятно, одно клавишесочетание, т.е. один шорткат?

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

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by John Doe »

sToLp wrote: Вероятно, одно клавишесочетание, т.е. один шорткат?
Да.
А если в терминах руководства luamacro, то один ключ.

(в шапке переформулировал)

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by sToLp »

John Doe wrote:[*]В любых сочетаниях с Ctrl клавиша Pause меняет название на Break
При попытках в поле key применить сочетание CtrlBreak+Буква и иже с ним вылезает ошибка:

Code: Select all

W:\Far\Profile\Macros\modules\mod.lua:30: attempt to index local 'key1' (a nil value)
А вот сочетание Space+Буква, применяемое вкупе со любыми обычными модификаторами и их сочетаниями, работают уже в текущей версии макроса.
Last edited by sToLp on Sun 24 Jul, 2016 06:07, edited 1 time in total.

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

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by John Doe »

sToLp wrote: При попытках в поле key применить сочетание CtrlBreak+Буква и иже с ним вылезает ошибка:
Не воспроизводится.
sToLp wrote: сочетание Space+Буква, применяемое вкупе со любыми обычными модификаторами и их сочетаниями, работают уже в текущей версии макроса.
Вкупе с модификаторами конечно, о чём я писал в прошлом посте.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by sToLp »

John Doe wrote:
sToLp wrote: При попытках в поле key применить сочетание CtrlBreak+Буква и иже с ним вылезает ошибка:
Не воспроизводится.
И правильно, что не воспроизводится. Нашёл таки причину. Приношу извинения. Это не в CtrlBreak дело. Это среди массы прочих ключей затесался у меня CtrlA, который я по инерции ни как не воспринимал как неправильный.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by sToLp »

В связи с изложенным на ru-board`е предположением проверил реакцию lua:=mf.waitkey() на одновременное нажатие пары клавиш LCtrl и ScrollLock в последней ночной сборке Far 3.0.4744x64 в Win10x64entRu на четырёх разномастных машинах. В т.ч. на машине тщательно протестированной свежей сборки со свежеустановленной системой и с Фаром в качестве единственной программы, установленной поверх системы. И результат везде одинаковый — Break (в Фаре под КонЭму — CtrlBreak).

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

Win, Apps, CapsLock [,...] в качестве модификаторов

Post by John Doe »

sToLp wrote: И результат везде одинаковый — Break
И?
Это ведь описано в шапке

Update
А у меня вот неожиданно CtrlScrollLock даёт Ctrlö
Впрочем перезагрузка помогла

Post Reply

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