Console Control
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Console Control
Console Control for FAR 3
Микроплагин для управления размером и шрифтом консольного окна FAR с помощью мыши или клавиатуры.
Микроплагин для управления размером и шрифтом консольного окна FAR с помощью мыши или клавиатуры.
Console Control
skipik,
flags="RunAfterFARStart";
Plugin.Call(CCID,"WindowSize",80,35);
Plugin.Call(CCID,"BufferSize",80,35);
Plugin.Call(CCID,"FontName","Lucida Console",15);
- как раз то что нужно
Только я вот ни разу не работал с такими вещами - меня в эту тему перенаправили с другой
Подскажите что нужно сделать что бы это заработало?
1. Я так понимаю нужно создать файл с определенным расширением скинуть туда эту информацию и потом положить его куда то?
2. В файл нужно сбрасывать всю информацию со спойлера или только ту что начинается с
3. Как активизировать макрос в принципе? судя по его описанию он должен стартовать Перед загрузкой фара - это как сделать?
Спасибо - судя вот по этим строкам
flags="RunAfterFARStart";
Plugin.Call(CCID,"WindowSize",80,35);
Plugin.Call(CCID,"BufferSize",80,35);
Plugin.Call(CCID,"FontName","Lucida Console",15);
- как раз то что нужно
Только я вот ни разу не работал с такими вещами - меня в эту тему перенаправили с другой
Подскажите что нужно сделать что бы это заработало?
1. Я так понимаю нужно создать файл с определенным расширением скинуть туда эту информацию и потом положить его куда то?
2. В файл нужно сбрасывать всю информацию со спойлера или только ту что начинается с
?
3. Как активизировать макрос в принципе? судя по его описанию он должен стартовать Перед загрузкой фара - это как сделать?
Console Control
Приведённый текст запишите в файл %FARPROFILE%\Macros\scripts\InitConsole.lua и перезапустите фар.
InitConsole можете заменить на своё имя, остальное менять не надо.
Если будете менять файл (под свои предпочтения), для применения изменений фар надо перезапустить.
На самом деле можно не перезапускать, а перегрузить макросы, но для начала так проще.
InitConsole можете заменить на своё имя, остальное менять не надо.
Если будете менять файл (под свои предпочтения), для применения изменений фар надо перезапустить.
На самом деле можно не перезапускать, а перегрузить макросы, но для начала так проще.
Console Control
2useven10, файл создал под именем InitConsole.lua с кодировкой UTF8 (65001) в Notepad++ положил %FARPROFILE%\Macros\scripts\InitConsole.lua
выбрасывает такое вот -
насколько я понял он просто ищет и не может найти сам макрос
Скачал отсюда http://plugring.farmanager.com/plugin.php?pid=886 архив ConCtrl.far3.x64.1.4.rar
распаковал его. и папку переименовал в consolecontrol
пробовал просто закинуть распакованный архив - без толку
закидывал сюда %FARPROFILE%\Macros\scripts\macros\modules
выбрасывает такое вот -
насколько я понял он просто ищет и не может найти сам макрос
Скачал отсюда http://plugring.farmanager.com/plugin.php?pid=886 архив ConCtrl.far3.x64.1.4.rar
распаковал его. и папку переименовал в consolecontrol
пробовал просто закинуть распакованный архив - без толку
закидывал сюда %FARPROFILE%\Macros\scripts\macros\modules
Console Control
Плагин надо было распаковать в %FARHOME%\plugins\ConsoleControl\
Ругань не на созданный вами макрос, а на вспомогательный макрос самого плагина.
В детали не вникал, но мне кажется он вам не нужен.
Если это всё-таки не так, то ConsoleControl-Macros.lua надо положить в %FARPROFILE%\Macros\scripts\
а ConsoleControl.lua в %FARPROFILE%\Macros\modules\
Ругань не на созданный вами макрос, а на вспомогательный макрос самого плагина.
В детали не вникал, но мне кажется он вам не нужен.
Если это всё-таки не так, то ConsoleControl-Macros.lua надо положить в %FARPROFILE%\Macros\scripts\
а ConsoleControl.lua в %FARPROFILE%\Macros\modules\
Console Control
Спасибо помогло
да вот помогло это - запустил на другой машине - развернулось до заданных размеров и ярлык не понадобился
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Console Control
Макрос на AltF9 при максимизации увеличивает и размеры консольного буфера (если он недостаточен для разворачивания окна на весь экран).
Проблема в том, что, что "нарощенная" часть буфера при этом наследует фон интерфейса фара (например панелей).
Чтобы этого не происходило интерфейс стоит предварительно гасить (FCTL_GETUSERSCREEN/FCTL_SETUSERSCREEN)
Желательно усовершенствовать плагин.
Можно конечно и прямо в макрос добавить, но тогда мелькать будет будет при каждом нажатии AltF9, а не только когда это необходимо.
Хотя.. можно попробовать и в макросе угадать:
Проблема в том, что, что "нарощенная" часть буфера при этом наследует фон интерфейса фара (например панелей).
Чтобы этого не происходило интерфейс стоит предварительно гасить (FCTL_GETUSERSCREEN/FCTL_SETUSERSCREEN)
Желательно усовершенствовать плагин.
Можно конечно и прямо в макрос добавить, но тогда мелькать будет будет при каждом нажатии AltF9, а не только когда это необходимо.
Хотя.. можно попробовать и в макросе угадать:
Code: Select all
local cc = ConsoleControl
Macro { description="Console Control: Maximize/Restore";
area="Common"; key="AltF9";
condition=cc.Exist;
action=function()
local wW, wH = cc.WindowSize () -- размеры окна
local bW, bH = cc.BufferSize () -- размеры буфера
local Max
if cc.Maximize()==0 and (wW==bW or wH==bH) then
panel.GetUserScreen()
Max = cc.Maximize(1)
mf.waitkey(1)
panel.SetUserScreen()
else
Max = cc.Maximize(-1)
end
if Max then
-- ShowHint("Maximize: " .. (Max == 1 and "On" or "Off") )
ShowHint()
end
end;
}
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Console Control
Интересно, что экран всё равно портился, пока я не добавил после Maximize ещё и mf.waitkey(1)
Console Control
Здравствуйте.
Обнаружился непонятный случай: Если я выполняю команду
то, Фар почему-то перестаёт реагировать на нажатие клавиш. Реагирует только на Enter. На стрелки вверх и вниз не реагирует.
Проблема возникла при проверке работы предложения из этой ветки. В чем может быть причина такого поведения?
Версия Фара: 3.0.5883.0 х86.
Обнаружился непонятный случай: Если я выполняю команду
mode con: col=170 lines=60
, а потом выполняю командыCode: Select all
Plugin.Call("94624B7B-FFDB-435F-B955-F99DBBC3BFE0", "WindowSize", 170, 60);
Plugin.Call("94624B7B-FFDB-435F-B955-F99DBBC3BFE0", "BufferSize", 170, 360);
Проблема возникла при проверке работы предложения из этой ветки. В чем может быть причина такого поведения?
Версия Фара: 3.0.5883.0 х86.
Last edited by fml2 on Fri 27 Aug, 2021 11:31, edited 4 times in total.
Console Control
Есть у меня подозрение, что Фар на самом деле понимает, что нажимаются кнопки, но просто не перерисовывает экран. Поэтому и на "ввод" реагирует -- потому что пытается "запустить" отмеченный файл.
Console Control
@Shmuel: Попробовал. Никакого улучшения. Но кое-какие наблюдения сделал:
Я понимаю, что плагин скорее всего не виноват (если бы он так глючил, это бы уже давно кто-нибудь заметил), но не понимаю, что у меня не так. Надо будет то же самое попробовать на другом компьютере.
- Фар действительно понимает, что нажимаются кнопки, и отрабатывает их, но не перерисовывает экран. Если я после выполнения макроса нажимаю "ввод" и ем самым перехожу в подкаталог (вслепую), то вижу, что заголовок окна меняется: в нем отображается новый каталог. Но на "основном экране" ничего не меняется.
- Если буфер консоли больше размера окна, то справа показывается вертикальная полоса прокрутки. Обычно она находится в "самом нижнем" положении. После выполнения макроса она находится иногда сверху а иногда примерно на 1/3 от верха.
- Консоль, похоже, находится в состоянии "отмечать". Т.е. когда я куда-нибудь тыкаю мышкой, начинается отмечание прямоугольника. Похоже, это не фаровское отмечание, а консольное.
Я понимаю, что плагин скорее всего не виноват (если бы он так глючил, это бы уже давно кто-нибудь заметил), но не понимаю, что у меня не так. Надо будет то же самое попробовать на другом компьютере.
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Console Control
Перед выполнением надо погасить панели, после - восстановить.
Именно так я делаю в наборе BufferScroll
Именно так я делаю в наборе BufferScroll
https://t.me/FarManager — Telegram чат
Console Control
Выяснилось, что если уже в "глючном" состоянии нажать
Пока самое лучшее, чего мне удалось добиться, выглядит так:
Esc
, то Фар более-менее приходит в себя, т.е. принажатии кнопок вверх/вниз по экрану бегает курсор.Пока самое лучшее, чего мне удалось добиться, выглядит так:
- Перед запуском макро вручную гашу панели (
Ctrl+O
). Понятно, что если это будет частью решения, то надо будет засунуть это в макро. - Запускаю макро --> Вертикальная полоса прокрутки отображается в самом верхнем положении.
- Нажимаю
Esc
--> Вертикальная полоса прокрутки отображается в самом нижнем положении. В командной строке курсор не мигает (его вообще не видно). - Отображаю панели (
Ctrl+O
) --> показываются панели; командная строка пуста. Если в этом месте еще раз погасить панели, то в ком. строке начинает мигать курсор, но промпта нет. Если нажать TAB, то все становится как надо, т.е. курсор перескакивает на другую панель и в ком. строке появляется промпт и мигает курсор.
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Console Control
Гасить панели надо не CtrlO, а
panel.GetUserScreen()
https://t.me/FarManager — Telegram чат