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

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

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

Post by John Doe » Mon 04 Jul, 2016 12:37

В качестве модификаторов можно использовать 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 39 times

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

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

Post by sToLp » Sat 09 Jul, 2016 14:56

Latest post of the previous page:

John Doe

Понятно. Похоже, что что-то вмешивается — система, сторонняя программа или м.б. плагин. Буду искать.

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

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

Post by John Doe » Sat 09 Jul, 2016 17:14

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

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: 691
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Sat 09 Jul, 2016 17:22

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

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

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

Поведение в Win10 шортката CtrlShiftPause пока остаётся загадкой — отключение Punto Switcher на него не повлияло, и в сети о нём упоминания что-то не попадаются.

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

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

Post by sToLp » Sat 09 Jul, 2016 17:56

John Doe wrote:попытка различать правый и левый шифты
Новые макросы с шифтами работают исправно.
Однако я не понял равнозначен ли LShift+ShiftF9 простому ShiftF9? И если нет, то как при наличии расширенного шортката набирать простой нативный шорткат?

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

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

Post by John Doe » Sat 09 Jul, 2016 18:12

sToLp wrote: равнозначен ли LShift+ShiftF9 простому ShiftF9?
простой ShiftF9 сработает и на правый Shift.
sToLp wrote: то как при наличии расширенного шортката набирать простой нативный шорткат?
Не уверен что понял вопрос

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

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

Post by sToLp » Sat 09 Jul, 2016 18:24

John Doe wrote:
sToLp wrote: то как при наличии расширенного шортката набирать простой нативный шорткат?
Не уверен что понял вопрос
Когда я набираю ShiftF9, то при новой системе сообщение показывает мне LShift+ShiftF9.
John Doe wrote:простой ShiftF9 сработает и на правый Shift
Дак мне его теперь не набрать ни как. Вместо RShiftF9 набирается RShift+ShiftF9.

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

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

Post by John Doe » Sat 09 Jul, 2016 18:30

sToLp wrote: Дак мне его теперь не набрать ни как. Вместо RShiftF9 набирается RShift+ShiftF9.
А как иначе-то?
Уберите макрос RShift+ShiftF9, и тогда по правому будет ваш ShiftF9

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

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

Post by sToLp » Sat 09 Jul, 2016 18:36

John Doe wrote:Уберите макрос RShift+ShiftF9, и тогда по правому будет ваш ShiftF9
Но тогда получается, что макросы типа LShift+ShiftF9 как бы лишние, потому что достаточно вместо них оставить просто ShiftF9. Чтобы соблюсти преемственность, не ломать старые макросы.

На мой взгляд, всё же, кажется лучше было бы, чтобы новые макросы типа LShift+ShiftF9 конкурировали бы со старыми макросами типа ShiftF9, выводились бы вместе с ними в меню "Выполнить макрос", а не забивали бы их.

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

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

Post by John Doe » Sat 09 Jul, 2016 20:23

sToLp wrote: достаточно вместо них оставить просто ShiftF9
Разумеется, если вам не нужно различать правый и левый.
sToLp wrote: чтобы новые макросы типа LShift+ShiftF9 конкурировали бы со старыми макросами типа ShiftF9, выводились бы вместе с ними в меню "Выполнить макрос"
Для этого надо уравнять приоритеты. Либо в новых поставить 45, либо в старом 55.

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

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

Post by sToLp » Sat 09 Jul, 2016 20:51

John Doe wrote:
sToLp wrote: чтобы новые макросы типа LShift+ShiftF9 конкурировали бы со старыми макросами типа ShiftF9, выводились бы вместе с ними в меню "Выполнить макрос"
Для этого надо уравнять приоритеты. Либо в новых поставить 45, либо в старом 55.
А вот это очень хорошо — поставил в новом макросе priority=45; и сразу стало комфортнее. И, полагаю, что эту подсказку надо бы и в описание. Спасибо!

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

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

Post by John Doe » Sat 09 Jul, 2016 21:04

sToLp wrote: И, полагаю, что эту подсказку надо бы и в описание. Спасибо!
Разница приоритетов была нужна для прочих комбинаций, а для xShift как вы справедливо заметили скорее мешает, а значит стоит предусмотреть это в скрипте.
Если конечно эти RShift/LShift кому-то нужны, это пока только эксперимент.

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

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

Post by sToLp » Sat 09 Jul, 2016 21:13

John Doe wrote:это пока только эксперимент
Наличие добротного универсального инструмента ни когда не помешает.

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

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

Post by John Doe » Sun 10 Jul, 2016 16:08

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

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

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

Post by sToLp » Sun 10 Jul, 2016 20:07

John Doe wrote:В шапке release 2
В Win10x64entRu большинство шорткатов работают нормально. Проблемы замечены лишь со следующими.

Pause+A/Break+A — срабатывает как просто Pause/Break, т.е. блокирует/разблокирует Фар; а остальные сочетания с этой клавишей (CtrlPause+A, AltPause+A, ShiftPause+A, CtrlAltBreak+A, CtrlShiftPause+A, AltShiftPause+A, CtrlAltShiftBreak+A) срабатывают так, как будто бы их вызывали без нажатия на клавишу Pause/Break.

Некоторые сочетания Apps+Буква не доходят до Фара (перехватываются системой). А сочетания CtrlApps+Буква и AltApps+Буква срабатывают как CtrlБуква и AltБуква (т.е. без Apps).
John Doe wrote:Эксперимент с LShift, RShift, xShift "узаконен"
На мой взгляд, с шифтами получается очень удобно.

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

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

Post by sToLp » Tue 12 Jul, 2016 09:51

sToLp wrote: В Win10x64entRu большинство шорткатов работают нормально. Проблемы замечены лишь со следующими.
...
В Фаре последней (4742 x86) сборки в Win7x32 результаты сегодняшнего теста идентичны тем, которые ранее получились в Win10x64entRu.

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

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

Post by sToLp » Wed 13 Jul, 2016 14:01

Похоже на то, что новые модификаторы (кроме Win) в сочетании с Alt работают только с LAlt, но не работают с RAlt. Но чётко это проверено с каждой буквой пока только на AltNumLock+Буква в Win10x64 и в Win7x32.

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

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

Post by zg » Wed 13 Jul, 2016 14:27

потому что в большинстве раскладок ralt — это altgr. а altgr — это lctrl+ralt.

Post Reply

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

Who is online

Users browsing this forum: No registered users and 3 guests