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

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 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 226 times
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

Latest post of the previous page:

sToLp wrote: Нашёл. Макрос на CtrlApps.
Да, надо как минимум оговорить такие случае в описании..
sToLp wrote: нажатия на клавишу Pause включают/выключают маркер выделения
Что за маркер выделения?
Может и тут у вас макрос затесался?

Насчёт таблички с клавишами: не понял о чём это.
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:Что за маркер выделения?
По нажатиям на Pause появляется/исчезает белый мигающий прямоугольник. Но я ошибся, это не курсор — после его появления знаки не вводятся.
Может и тут у вас макрос затесался?
Поиск ничего не дал. Полагаю, что это система такое выдаёт, потому что после ввода команды lua:=mf.waitkey() нажатия на одиночный Pause ни чего не дают, кроме включения/выключения того самого прямоугольника.
Насчёт таблички с клавишами
Ввожу lua:=mf.waitkey(), нажимаю клавиши (1-ый столбец) и получаю результат (2-ой столбец).
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

sToLp wrote: По нажатиям на Pause появляется/исчезает белый мигающий прямоугольник.
Рискну предположить что это то же действие, что доступно через контекстное меню окна (Изменить / Пометить)

По табличке для интереса проверил ваши сочетания, и вот на этих наши результаты разошлись (У меня XP):
sToLp wrote: на CtrlPause — как CtrlBreak,
просто Break
sToLp wrote: на ShiftPause — как CtrlC,
нормально (ShiftPause)
sToLp wrote: а CtrlShiftPause — как CtrlShiftБелоеСердечко,
просто Break
sToLp wrote: на AltShiftPause — как CtrlC,
нормально (AltShiftPause)
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

Понятно. Похоже, что что-то вмешивается — система, сторонняя программа или м.б. плагин. Буду искать.
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

В шапке эксперимент: попытка различать правый и левый шифты.

Code: Select all

local MacroMod = require"mod"(Macro)
MacroMod {
  area="Common"; key="LShift+ShiftF1"; description="LShift+F1";
  action=function()
    far.Message"LShift+F1"
  end
}
MacroMod {
  area="Common"; key="RShift+ShiftF1"; description="RShift+F1";
  action=function()
    far.Message"RShift+F1"
  end
}
Кроме того, есть возможность определять Shift в комбинациях, в которых сам фар не предусматривает, например:

Code: Select all

local MacroMod = require"mod"(Macro)
MacroMod {
  area="Common"; key="xShift+A"; description="Shift+A";
  action=function()
    far.Message"Shift+A"
  end
}
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 »

На текущий момент в отношении клавиши Pause/Break выяснил следующее.

Во-первых, ни какого влияния на неё со стороны плагинов и макросов самого Фара не обнаружено.

В системе же клавиша Pause/Break предназначена для блокирования/отпускания активной программы. И действительно она блокирует Фар, когда демонстрирует мигающий прямоугольник. Однако программа Punto Switcher всё-таки как-то перехватывает эту клавишу и использует её для переключения раскладок. Вместе с тем Punto Switcher перехватывает и ShiftPause с AltShiftPause. Но если пожертвовать в ней опцией автопереключения, то эти два шортката в Фаре будут работать соответственно своим наименованиям.

Поведение в Win10 шортката CtrlShiftPause пока остаётся загадкой — отключение Punto Switcher на него не повлияло, и в сети о нём упоминания что-то не попадаются.
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:попытка различать правый и левый шифты
Новые макросы с шифтами работают исправно.
Однако я не понял равнозначен ли LShift+ShiftF9 простому ShiftF9? И если нет, то как при наличии расширенного шортката набирать простой нативный шорткат?
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

sToLp wrote: равнозначен ли LShift+ShiftF9 простому ShiftF9?
простой ShiftF9 сработает и на правый Shift.
sToLp wrote: то как при наличии расширенного шортката набирать простой нативный шорткат?
Не уверен что понял вопрос
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: то как при наличии расширенного шортката набирать простой нативный шорткат?
Не уверен что понял вопрос
Когда я набираю ShiftF9, то при новой системе сообщение показывает мне LShift+ShiftF9.
John Doe wrote:простой ShiftF9 сработает и на правый Shift
Дак мне его теперь не набрать ни как. Вместо RShiftF9 набирается RShift+ShiftF9.
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

sToLp wrote: Дак мне его теперь не набрать ни как. Вместо RShiftF9 набирается RShift+ShiftF9.
А как иначе-то?
Уберите макрос RShift+ShiftF9, и тогда по правому будет ваш ShiftF9
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:Уберите макрос RShift+ShiftF9, и тогда по правому будет ваш ShiftF9
Но тогда получается, что макросы типа LShift+ShiftF9 как бы лишние, потому что достаточно вместо них оставить просто ShiftF9. Чтобы соблюсти преемственность, не ломать старые макросы.

На мой взгляд, всё же, кажется лучше было бы, чтобы новые макросы типа LShift+ShiftF9 конкурировали бы со старыми макросами типа ShiftF9, выводились бы вместе с ними в меню "Выполнить макрос", а не забивали бы их.
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

sToLp wrote: достаточно вместо них оставить просто ShiftF9
Разумеется, если вам не нужно различать правый и левый.
sToLp wrote: чтобы новые макросы типа LShift+ShiftF9 конкурировали бы со старыми макросами типа ShiftF9, выводились бы вместе с ними в меню "Выполнить макрос"
Для этого надо уравнять приоритеты. Либо в новых поставить 45, либо в старом 55.
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: чтобы новые макросы типа LShift+ShiftF9 конкурировали бы со старыми макросами типа ShiftF9, выводились бы вместе с ними в меню "Выполнить макрос"
Для этого надо уравнять приоритеты. Либо в новых поставить 45, либо в старом 55.
А вот это очень хорошо — поставил в новом макросе priority=45; и сразу стало комфортнее. И, полагаю, что эту подсказку надо бы и в описание. Спасибо!
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

sToLp wrote: И, полагаю, что эту подсказку надо бы и в описание. Спасибо!
Разница приоритетов была нужна для прочих комбинаций, а для xShift как вы справедливо заметили скорее мешает, а значит стоит предусмотреть это в скрипте.
Если конечно эти RShift/LShift кому-то нужны, это пока только эксперимент.
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:это пока только эксперимент
Наличие добротного универсального инструмента ни когда не помешает.
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

В шапке release 2
  • Теперь поддерживается и Shift во всех сочетаниях
  • Эксперимент с LShift, RShift, xShift "узаконен", использование описано в шапке.
    NB: речь только об отдельных, а сочетания с другими модификаторами (типа AltLShift) не различаются, имхо это излишне.
    Изменения:
    - Вместо RShift+ShiftF1 пишем нормально: RShift+F1
    - Приоритет не повышается
Post Reply

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