citPiks
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: -- Макросы пакета навигацияПоПанелиВслепую.lua - навигация в панели 'слепым' способом -- пальцами правой руки (по клавишам HUJMIK<O.[] и большим пальцем по Space) от базовой точки клавиатуры -- работают при наличии в комстроке в качестве замыкающих символов двух пробельных -- В данном наборе макросов применены только одиночные клавиши без модификаторов -- Соcтавил citPiks. С учётом и с использованием: -- идеи https://forum.farmanager.com/viewtopic.php?p=154710#p154710 ImBringingTaxicab, -- метода двойного нажатия ключей https://forum.farmanager.com/viewtopic.php?p=139385#p139385 John Doe, -- примера макроса листания двойным нажатием клавиш https://forum.farmanager.com/viewtopic.php?p=151729#p151729 sToLp, -- скрипта key2Process.lua https://forum.farmanager.com/viewtopic.php?p=152518#p152518 IgorZ, -- с благодарностью к поименованным и к другим лицам, в той или иной мере участвующим в развитии FAR. local l = 45 -- ширина участка поля description в меню выбора макроса (при применении key2Process) -- Большой палец / Right thumb: Macro { description="Приступить к навигации по панели 'вслепую'"; -- description="Input on Command Line"; area="Shell"; key="Space CtrlAltSpace"; key2="Большим пальцем по SPACE"; sortpriority=35; selected=true; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="90F97726-EDBF-4303-B8D4-721C80706C56"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " end; -- работа макроса в видимой панели и при двух замыкающих пробелах в комстроке action=function() far.Message("Можно производить навигацию в панели буквенными клавишами.","В конце комстроки есть 2 пробельных символа:") end; -- action=function() Keys("Space") Keys("CtrlShiftLeft") end; --far.Message("получаем: '"..string.sub(CmdLine.Value, -2).."'") -- проверка на 2 пробела в конце комстроки --After inserting two space characters at the end of the command line, you can navigate the panel with letter keys. --После вставки в конец комстроки двух знаков пробела можно делать навигацию по панели буквенными клавишами. } -- Указательный палец / Right index finger: local maxDelay = 250 -- промежуток времени между двумя нажатиями пусковой клавиши (в миллисекундах) -- двойное нажатие John Doe Wed 13 Jul 2016 19:50 http://forum.farmanager.com/viewtopic.php?p=139385#p139385 local t = 0 Macro { description="Листать в панели ↕ как PgDn/PgUp УКАЗАТЕЛЬНЫМ дважды по M/U (т.е. выше или ниже базовой позиции)"; -- description="Screenful down / up"; area="Shell"; priority = 100; key="Space M U"; id="69C6B2CD-E8CF-40F3-BD4B-8A6FDBE4984F"; condition=function() -- работа макроса в видимой панели при двух замыкающих пробелах в комстроке и двойном нажатии ключа local t1 = Far.UpTime local delay = t1-t t = t1 return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and delay<maxDelay end; action=function() if akey(1,1):match('M') then Keys("PgDn") else Keys("PgUp") end; --or akey(1,1):match('Ь') end; } Macro { description="Листать в панели ↕ как PgDn/PgUp УКАЗАТЕЛЬНЫМ дважды по M/U"; area="Shell"; priority = 45; key="Space M U"; id="C62210FB-04B8-45AC-A1BB-0BD4A1AA2615"; condition=function() -- работа макроса в видимой панели и при двух замыкающих пробелах в комстроке return APanel.Visible and string.sub(CmdLine.Value, -2)==" " end; action=function() far.Message("Макрос на двойное нажатие активируется только из панели.","ВНИМАНИЕ!") end; } local maxDelay = 250 -- промежуток времени между двумя нажатиями пусковой клавиши (в миллисекундах) -- двойное нажатие John Doe Wed 13 Jul 2016 19:50 http://forum.farmanager.com/viewtopic.php?p=139385#p139385 local t = 0 Macro { description="Прыгать в панели ↔ как Home/End УКАЗАТЕЛЬНЫМ дважды по H/J (т.е. левее базовой позиции или по базовой)"; --description="Go to the top/bottom position of the panel"; area="Shell"; priority = 100; key="Space H J"; id="87DDC3D5-D2EE-4C4E-933E-E2FDD10CE438"; condition=function() -- работа макроса в видимой панели при двух замыкающих пробелах в комстроке и двойном нажатии ключа local t1 = Far.UpTime local delay = t1-t t = t1 return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and delay<maxDelay end; action=function() if akey(1,1):match('J') then Keys("End") else Keys("Home") end; end; } Macro { description="Прыгать в панели ↔ как Home/End УКАЗАТЕЛЬНЫМ дважды по H/J"; --Go to the top/bottom position of the panel area="Shell"; priority = 45; key="Space H J"; id="9DE2ADF2-68B3-49DE-A15A-54155E56CBA4"; condition=function() -- -- работа макроса в видимой панели и при двух замыкающих пробелах в комстроке return APanel.Visible and string.sub(CmdLine.Value, -2)==" " end; action=function() far.Message("Макрос на двойное нажатие активируется только из панели.","ВНИМАНИЕ!") end; } Macro { description="Перейти на позицию левее - Left"; -- description="Move Left"; area="Shell"; key="Space H"; key2="Указательным влево - &H"; sortpriority=48; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="D8220DB4-DFA1-4B8E-B8ED-334ABD4D5B61"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('Left') end; } Macro { description="Перейти на позицию левее - Left"; -- description="Move Left"; area="Shell"; key="Space H"; key2="Указательным влево - &Р"; sortpriority=48; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="9D0279D8-405D-42F9-96F2-5157CD52264C"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('Left') end; } Macro { description="Перейти на позицию правее - Right"; -- description="Move Right"; area="Shell"; key="Space J"; key2="Указательным на месте - &J"; sortpriority=44; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="5FB4CEC1-F2CB-43CC-85B6-B852920F7FB9"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('Right') end; } Macro { description="Перейти на позицию правее - Right"; -- description="Move Right"; area="Shell"; key="Space J"; key2="Указательным на месте - &О"; sortpriority=44; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="844B548A-353F-419A-A868-069DA9FA481A"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('Right') end; } Macro { description="Перейти на позицию выше - Up"; -- description="Move Up"; area="Shell"; key="Space U"; key2="Указательным вверх - &U"; sortpriority=40; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="ACEC6A4B-930A-4157-AE2A-22D0F0DB63B8"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('Up') end; } Macro { description="Перейти на позицию выше - Up"; -- description="Move Up"; area="Shell"; key="Space U"; key2="Указательным вверх - &Г"; sortpriority=40; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="E3F07B2A-22C6-4BB4-9B6C-2876A0ADF310"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('Up') end; } Macro { description="Перейти на позицию ниже - Down"; -- description="Move Down"; area="Shell"; key="Space M"; key2="Указательным вниз - &M"; sortpriority=36; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="74556224-9176-4595-993C-51586E844C92"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('Down') end; } Macro { description="Перейти на позицию ниже - Down"; -- description="Move Down"; area="Shell"; key="Space M"; key2="Указательным вниз - &Ь"; sortpriority=36; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="272B4F4A-A6DF-4DA3-8BC9-95772C54FAAA"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('Down') end; } -- Средний палец / Middle finger of the right hand: Macro { description="Пометить/снять пометку объекта - Ins"; -- description="Select/deselect file"; area="Shell"; key="Space I"; key2="Средним вверх - &I"; sortpriority=34; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="28B96FBD-12EB-47C5-B8AE-532F2912C8F7"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('Ins') end; } Macro { description="Пометить/снять пометку объекта - Ins"; -- description="Select/deselect file"; area="Shell"; key="Space I"; key2="Средним вверх - &Ш"; sortpriority=34; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="52279F42-5529-49E9-B340-E13A29776573"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('Ins') end; } Macro { description="Инвертировать пометку в панели - Multiply"; -- description="Changes the sorting order to be reversed"; area="Shell"; key="Space K"; key2="Средним на месте - &K"; sortpriority=32; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="62867EF9-FCB8-4E91-BD3E-1083B73183F1"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('Multiply') end; } Macro { description="Инвертировать пометку в панели - Multiply"; -- description="Changes the sorting order to be reversed"; area="Shell"; key="Space Л"; key2="Средним на месте - &Л"; sortpriority=32; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="77148A5F-1ABE-473D-A2A0-6D0FA271FB9C"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('Multiply') end; } Macro { description="Обратить пометку одного объекта"; -- description="Unmark one object"; area="Shell"; key="Space ,"; key2="Средним вниз - &<"; sortpriority=28; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="4571333F-7F32-491E-BD58-B66A5EA1F096"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('Up Ins Up') end; } Macro { description="Обратить пометку одного объекта"; -- description="Unmark one object"; area="Shell"; key="Space Б"; key2="Средним вниз - &Б"; sortpriority=28; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="9F0B961B-93DB-4F4C-AD97-92970CC23C3C"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('Up Ins Up') end; } -- Безымянный палец / Ring finger of the right hand: Macro { description="Пометить элементы - Add"; -- description="Sets the sorting order to be direct"; area="Shell"; key="Space O"; key2="Безымянным вверх - &O"; sortpriority=24; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="D70C86EC-FB11-4682-AE09-3B2CF3A995F7"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('Add') end; } Macro { description="Пометить элементы - Add"; -- description="Sets the sorting order to be direct"; area="Shell"; key="Space O"; key2="Безымянным вверх - &Щ"; sortpriority=24; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="1B806E5D-9B8A-4E87-9449-8ED97B3BB544"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('Add') end; } Macro { description="Снять пометку с группы - Subtract"; -- description="Unmark a group"; area="Shell"; key="Space ."; key2="Безымянным вниз - &>"; sortpriority=16; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="7979AF2F-BB21-497A-96ED-140EA928F285"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('Subtract') end; } Macro { description="Снять пометку с группы - Subtract"; -- description="Unmark a group"; area="Shell"; key="Space ю"; key2="Безымянным вниз - &Ю"; sortpriority=16; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="5CC3EBD8-BB1D-409C-9A27-14EE43A605B3"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('Subtract') end; } -- Мизинец / Little finger of the right hand: Macro { description="Прокрутка текущей позиции вверх"; -- description="scroll up"; -- см. michaelang Sat 31 Aug 2019 05:42 https://forum.farmanager.com/viewtopic.php?p=154883#p154883 area="Shell"; key="Space ["; key2="Мизинцем вверх вправо - &["; sortpriority=15; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="7F6FF4B7-5C70-44F2-BB30-30EF5A10142F"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('MsWheelDown Up') end; } Macro { description="Прокрутка текущей позиции вверх"; -- description="scroll up"; -- см. michaelang Sat 31 Aug 2019 05:42 https://forum.farmanager.com/viewtopic.php?p=154883#p154883 area="Shell"; key="Space ["; key2="Мизинцем вверх вправо - &Х"; sortpriority=15; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="CFA0760A-FAD7-4827-8573-C0C3D8BAF5C1"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('MsWheelDown Up') end; } Macro { description="Прокрутка текущей позиции вниз"; -- description="scroll down"; -- см. michaelang Sat 31 Aug 2019 05:42 https://forum.farmanager.com/viewtopic.php?p=154883#p154883 area="Shell"; key="Space ]"; key2="Мизинцем вверх ещё правее - &]"; sortpriority=14; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="6043A763-9AB3-4557-A999-87D39EFC80E4"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0409; end; -- исполнять только в англ. раскладке action=function() Keys('MsWheelUp Down') end; } Macro { description="Прокрутка текущей позиции вниз"; -- description="scroll down"; -- см. michaelang Sat 31 Aug 2019 05:42 https://forum.farmanager.com/viewtopic.php?p=154883#p154883 area="Shell"; key="Space ]"; key2="Мизинцем вверх ещё правее - &Ъ"; sortpriority=14; flags="NotEmptyCommandLine EnableOutput"; bdsize=l; id="67D817B2-14E5-4518-8F09-E14975DCDFC5"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " and band(0xFFFF, _G.KbdLayout()) == 0x0419; end; -- исполнять только в русск. раскладке action=function() Keys('MsWheelUp Down') end; } -- Макрос-затычка / Gag macro: Macro { description="Затычка для не используемых при слепой навигации кнопок"; area="Shell"; flags="NotEmptyCommandLine"; id="B56858B9-25D7-4C7A-8713-E060BA3335FA"; key="q w e r t y й ц у к е н a s d f g ф ы в а п z x c v b я ч с м и т l д p з ; ж ' э /"; condition=function() return APanel.Visible and string.sub(CmdLine.Value, -2)==" " end; action=function() end; } |
| Всего записей: 373 | Зарегистр. 26-06-2016 | Отправлено: 22:21 27-09-2019 | Исправлено: citPiks, 22:23 27-09-2019 |
|