Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Mon 04 Jul, 2016 12:37
by John Doe
В качестве модификаторов можно использовать LWin, RWin, Apps, CapsLock, NumLock, ScrollLock, Pause/Break, PrntScrn, и любые другие клавиши и сочетания не выполняющие действий, например допустимы комбинации вида CtrlB+A
Допускаются любые сочетания с обычными модификаторами Ctrl/Alt/Shift
Дополнительная функция: в качестве модификаторов различаются (отдельные) LShift, RShift, Shift
Для чего это нужно:
Фар не различает левый и правый Shift, а с помощью модуля можно так:
local MacroX = require"xmod"(Macro)
MacroX {
area="Common"; key="CapsLock+A";
action=function()
far.Message"CapsLock+A"
end
}
MacroX {
area="Common"; key="LWin+A";
action=function()
far.Message"Win+A"
end
}
MacroX {
area="Common"; key="CtrlLWin+A";
action=function()
far.Message"CtrlWin+A"
end
}
Примечания:
Ограничение: в поле key не допускается перечисление нескольких сочетаний.
Ограничение: если на клавишу-модификатор (отдельно) уже назначен макрос, то сочетание не сработает.
Pause/Break и некоторые сочетания с LWin/RWin могут использоваться системой и не доходить до фара (при желании можно кое-что освободить).
Ряд сочетаний можно сделать доступными с помощью XKeys.
Отдельные комбинации спецклавиш в сочетании с модификаторами имеют особое название, например:
CtrlNumLock → CtrlPause
CtrlScrollLock → CtrlBreak
В любых сочетаниях с Ctrl клавиша Pause меняет название на Break
В комбинациях где дополнительный модификатор сочетается с Shift-<символ> без Ctrl/Alt, этот символ должен быть представлен той его формой, которая получается с нажатым Shift, т.е. например правильно ShiftLWin+! (а не ShiftLWin+1).
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 11:55
by John Doe
Latest post of the previous page:
HaRT wrote: WinR
Если в контексте сабжа, то LWin+R и RWin+R
И что ещё важно, на данный момент есть ограничение: скрипт ожидает в key единственную клавишу.
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 12:02
by HaRT
John Doe wrote: есть ограничение: скрипт ожидает в key единственную клавишу
Планируется ли поддержать несколько, как в стандартных макросах LuaMacro?
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 12:38
by John Doe
Планируется интегрировать в MacroEx. Точнее реализовать там иным способом.
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 13:56
by sToLp
Макросы, назначенные на сочетания CtrlWin+Key и AltWin+Key, выводятся с назначенными на CtrlKey и AltKey в меню конфликтующих макросов.
tst]Z.png (22.31 KiB) Viewed 8170 times
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 15:41
by John Doe
sToLp, спасибо за репорт.
В шапке исправленная версия
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 21:26
by sToLp
При вызове макросов шорткатами CtrlLWin+A и AltLWin+Q возникает меню "Исполнить макрос", в котором выводится указание на некий якобы конфликтующий с целевым макрос. Переход по AltF4 выводит на _macronit.lua.
tst(Q.png (25.5 KiB) Viewed 8128 times
С другими доступными шорткатами, содержащими клавишу Win, такое на наблюдается.
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 21:33
by John Doe
sToLp wrote: указание на некий якобы конфликтующий с целевым макрос.
Значит есть такой.
Откройти MacroBrowser, отфильтруйте список по строке "AltQ" (или "CtrlA"), и ищите макрос без описания.
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 21:54
by sToLp
John Doe wrote:Откройте MacroBrowser, отфильтруйте список по строке "AltQ" (или "CtrlA"), и ищите макрос без описания.
Результат в обоих случаях тот же самый — по F4 открывается _macroinit.lua.
LuaMacro
W:\Far\Profile\Macros\modules\mod.lua:17: nil
stack traceback:
[C]: in function 'assert'
W:\Far\Profile\Macros\modules\mod.lua:17: in function <W:\Far\Profile\Macros\modules\mod.lua:11>
...ofile\Macros\scripts\com_lua\rebind\Macro\_macroinit.lua:1: in main chunk
При запуске из Macro Browser alt. макроса с меткой CtrlA id=1746 результат:
John Doe wrote:В инструкции по установке подразумевался файл Macros\scripts\_macroinit.lua
Если переложить по указанному пути ни чего не меняется.
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 23:13
by John Doe
Это похоже какие-то остатки от прошлых версий скрипта, удалите файл mod_sample.lua
А, нет, я же его не выкладывал.
Значит ищете в папке scripts по строке "CtrlWin+A"
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 23:39
by sToLp
John Doe wrote:Это похоже какие-то остатки от прошлых версий скрипта
Действительно, сохранился старый файл с именем "test168_WIN-какМодификатор(JD)tst.lua", содержащий два незакомментированных макроса — на key="CtrlLWin+A" и на key="AltLWin+Q" без description. И вон они как необычно проявились...
Большое спасибо за помощь!
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Thu 07 Jul, 2016 23:45
by John Doe
sToLp wrote: Действительно, сохранился старый файл
Но всё равно не понимаю почему из меню конфликта макросов по AltF4 открывался _macroinit.lua
У меня вот всё чётко, и MacroBrowser тоже показывает в каких реально файлах расположены макросы.
Win, Apps, CapsLock [,...] в качестве модификаторов
Posted: Fri 08 Jul, 2016 00:23
by sToLp
John Doe wrote:Но всё равно не понимаю почему из меню конфликта макросов по AltF4 открывался _macroinit.lua
Сейчас перепроверил. В дополнение к сабжевым сформировал
local MacroMod = require"mod"
MacroMod {
area="Common"; key="CtrlLWin+A";
action=function()
far.Message"CtrlWin+A"
end
}
MacroMod {
area="Common"; key="AltLWin+Q";
action=function()
far.Message"AltWin+Q"
end
}
. Перезагрузил Фар. С CtrlLWin+A всё воспроизводится в точности как изложено выше. А по CtrlLWin+A выдаётся мессадж согласно вновь сформированному файлу (его аналога нет в изначальном сабжевом). Дополняю сабжевый mod_test.lua шорткатом AltLWin+Q и перезагружаю макросы. Нажимаю AltLWin+Q и получаю в точности то, что было раньше. Т.е. у меня (Win10x64entRu Far3.0.4738x64) воспроизводится на 100%. Завтра попробую на других машинах.