RecentScreens — переключение между окнами как в MS Windows™

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

RecentScreens — переключение между окнами как в MS Windows™

Post by John Doe » Tue 09 Apr, 2013 13:02

В большинстве приложений, которые я использую, переключение между окнами происходит в порядке их использования (MRU order).
Но не во всех, пример исключений: FAR manager, Google Chrome.
Для решения этой проблемы в фаре был когда-то такой плагинчик RecentScreens — меню «Экраны» в порядке использования

Вашему вниманию предлагается LuaMacro-реализация подобной функциональности.

Переключение окон-экранов по умолчанию заменяет LCtrlTab (только левый Ctrl).
В отличии от обычного переключения экранов — в процессе переключения может отображаться список окон (до тех пор, пока удерживается Ctrl).



Требуется FAR3 build 4096 или новее.
Attachments
RecentScreens_r3.9.7z
r3.9 work in progress
(5.13 KiB) Downloaded 140 times

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

Re: RecentScreens — переключение между окнами как в MS Windo

Post by John Doe » Sat 27 Apr, 2013 21:57

Latest post of the previous page:

А при использовании RecentScreens кто как предпочитает переключаться в панели?
CtrlTab или отдельной комбинацией?
Alt0?

gerser
Posts: 58
Joined: Tue 11 Oct, 2005 20:13
Location: Сургут
Contact:

Re: RecentScreens — переключение между окнами как в MS Windo

Post by gerser » Thu 26 Sep, 2013 11:38

Я из редактора в панели переключался по комбинации Alt`, а из панелей по ней же в редактор в тот, из которого вышел последний раз. Было это во времена 1.7. В 3 хочу также :)

User avatar
HaRT
Moderator
Posts: 8075
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

Re: RecentScreens — переключение между окнами как в MS Windo

Post by HaRT » Thu 26 Sep, 2013 12:01

Я без RecentScreens переключаюсь по Alt0 и не вижу, почему с RecentScreens это должно измениться.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Docent1
Posts: 561
Joined: Thu 31 Mar, 2005 23:13
Been thanked: 1 time

Re: RecentScreens — переключение между окнами как в MS Windo

Post by Docent1 » Fri 27 Sep, 2013 20:11

А можно как-то заменить "Tab" на "`" (это на одну клавишу выше)? Я пробовал в скрипте macroKey = "Tab" заменить на macroKey = "`" но он работает только при CtrlSift`. Просто у меня на Tab повешено сравнение и вроде привык. А вообще бы в идеале клавиша назначается польвователем (но это вряд ли получится - как бы мкрос переписывается)?
Docent1

Docent1
Posts: 561
Joined: Thu 31 Mar, 2005 23:13
Been thanked: 1 time

Re: RecentScreens — переключение между окнами как в MS Windo

Post by Docent1 » Sat 28 Sep, 2013 12:04

Вопрос снимается: разобрался
Docent1

User avatar
Tim Sobolev
Posts: 693
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Contact:

Re: RecentScreens — переключение между окнами как в MS Windo

Post by Tim Sobolev » Sun 16 Mar, 2014 22:48

Открываем любой файл на редактирование, для которого в ESC "<lockfile value="on"/>", жмём F6 и вуаля, работать больше нельзя.

Проблемы как со скриптом из шапки, так и с фиксом на этой странице.


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

Re: RecentScreens — переключение между окнами как в MS Windo

Post by John Doe » Sun 16 Mar, 2014 23:54

Там ошибка, eval(mf.waitkey()) надо исправить на Keys(mf.waitkey())

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

r3.6

Post by John Doe » Wed 30 Jul, 2014 11:10

Исправлены ошибки, скрипт адаптирован к изменениям билда 4026.

В шапке.
Docent1 wrote:А можно как-то заменить "Tab" на "`" (это на одну клавишу выше)?
Теперь достаточно изменить переменную macroKey в начале файла.
IgorZ wrote:Идеальное для меня поведение, выявленное экспериментально - по CtrlTab немедленное переключение по списку без вывода меню, а по CtrlCapsLock вывод меню с переключением после отпускания Ctrl.
Теперь в комплекте отдельный макрос на CtrlCapsLock, по умолчанию неактивен (NoMacro).

P.S.
В режиме с отображением списка переключение происходит только при отпускании Ctrl (т.е. режим Instant не работает).
Причина: баг, внесённый в билде фара 3847: фаре http://bugs.farmanager.com/view.php?id=1301#c12736

Игорь Юдинцев
Posts: 725
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 1 time

Re: RecentScreens — переключение между окнами как в MS Windo

Post by Игорь Юдинцев » Wed 30 Jul, 2014 12:37

John Doe
На вьюверах переключение сбоит. Открываем три файла, жмём и удерживаем Ctrl+Tab так, чтобы файл 1 сменился на файл 2, в появившемся меню выбираем файл 3. Результат: в заголовке консоли видим «просмотр файла 3», на экране по-прежнему просмотр файла 2.

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

Re: RecentScreens — переключение между окнами как в MS Windo

Post by John Doe » Wed 30 Jul, 2014 13:11

Воспроизводится почти всегда при переключении между двумя вьюверами.
Если после этого во вьювере нажать (например) PgUp, то на экране проявляется правильный файл.

Скрипт честно посылает ACTL_SETCURRENTWINDOW и ACTL_COMMIT.
Похоже баг в фаре.

Update
Так и есть, после ACTL_COMMIT неправильно работает VCTL_GETINFO.
Можно убедиться, добавив после строки 78 проверку:
  1. if Area.Viewer and viewer.GetInfo().ViewerID~=far.AdvControl (F.ACTL_GETWINDOWINFO).Id then
  2.   error"~="
  3. end

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

r3.7

Post by John Doe » Tue 12 Aug, 2014 00:25

  • Игнорируем окно Desktop
  • Вычурно обходим баги фара
В шапке.

User avatar
Tim Sobolev
Posts: 693
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Contact:

Re: RecentScreens — переключение между окнами как в MS Windows™

Post by Tim Sobolev » Sun 05 Oct, 2014 13:13

Будет ли возвращена настраиваемая поддержка Desktop Screen и удалены костыли которые были добавлены до применения фиксов в FAR?

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: RecentScreens — переключение между окнами как в MS Windows™

Post by AleXH » Sun 05 Oct, 2014 19:42

FAR3.4040 открыт в конему. Открываем в панелях редактор любого файла, ctrl-tab в панели, открываем вьювер любого файла, ESC - должны вернуться в панели, но вместо этого попадаем в редактор. Проявляется дефект и через скрипты.

fml2
Posts: 490
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

Re: RecentScreens — переключение между окнами как в MS Windows™

Post by fml2 » Mon 06 Oct, 2014 06:32

FAR3.4040 открыт
Вроде ж уже 41хх на дворе?!

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

Re: RecentScreens — переключение между окнами как в MS Windows™

Post by John Doe » Mon 06 Oct, 2014 07:13

Tim Sobolev wrote:Будет ли возвращена настраиваемая поддержка Desktop Screen
Если объясните какая требуется поддержка.

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

Re: RecentScreens — переключение между окнами как в MS Windows™

Post by John Doe » Mon 06 Oct, 2014 08:21

AleXH wrote:...но вместо этого попадаем в редактор.
Conemu обрабатывает комбинацию CtrlTab самостоятельно, в фар она не приходит, соответственно RecentScreens работает некорректно.
Если бы можно было как-то отловить событие перехода в панели, то такой проблемы не было бы.

Впрочем, насколько я знаю у Conemu есть собственная функция Recent, поэтому стоит запретить RecentScreens при наличии Conemu.
AleXH wrote:Проявляется дефект и через скрипты.
И без Conemu? Причина та же: если переход в панели выполнен не изнутри RecentScreens, то он просто не регистрируется.

User avatar
Tim Sobolev
Posts: 693
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Contact:

Re: RecentScreens — переключение между окнами как в MS Windows™

Post by Tim Sobolev » Tue 07 Oct, 2014 21:42

John Doe wrote:
Tim Sobolev wrote:Будет ли возвращена настраиваемая поддержка Desktop Screen
Если объясните какая требуется поддержка.
Показ в списке, переключение из/в по CtrlTab

Post Reply

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