View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002469 | Wishes | Macro | public | 2013-08-21 07:43 | 2014-08-30 07:15 |
Reporter | ladserg | Assigned To | shmuel | ||
Priority | normal | Severity | feature | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Product Version | 3.0 | ||||
Summary | 0002469: Общие макросы | ||||
Description | Нужно заставить FAR подключать макросы из каталога с программой (например %FARHOME%\Macros\scripts), с меньшим, чем макросы пользователя приоритетом. Понимаю что есть варианты из области скриптологии и костылестроения, но раз FAR при запуске все равно подключает общие плагины, смотрит общие настройки, подключает макросы пользователя, то по идее организовать подключение общих макросов не должно занять много труда и времени (да и деструктивности привнести не должно). В итоге можно будет, скажем, централизованно (в сетях с доменом) назначать общие хоткеи. П.С. При рассмотрении сабжа прошу учесть что FAR используют люди далекие от ИТ премудростей, и быть к ним (к премудростям) ближе они никак не должны. | ||||
Tags | No tags attached. | ||||
Build | LMb423 | ||||
|
Источник: http://forum.farmanager.com/viewtopic.php?f=3&t=8152 |
|
Может хотя бы импорт макросов из файла/каталога сделать, желательно бы ещё и автоматически при пустом профиле пользователя, на подобии Default.farconfig? |
|
А вариант специального конфигурационного файла в папке плагина LuaMacro, в котором бы указывался список папок, откуда грузятся макросы, подходит? |
|
Да, пожалуй, подходит. В моём случае так же вполне может подойти и указание загружать макросы исключительно из каталога FAR'а, т.к. не встречал ещё пользователей активно кодящих макросы... Да и воообще мне еще не встретился ни один пользователь изменивший хоть один хот-кей или написавший/подключивший сам хоть один макрос :-) |
|
Мне бы хотелось, если уж делать, не ограничиваться вашими специфическими запросами, а охватить более широкий спектр применения. |
|
>А вариант специального конфигурационного файла в папке плагина LuaMacro А может использовать Far.exe.ini в папке %FARHOME%? |
|
JohnDoe: Вариант с Far.exe.ini был бы предпочтителен, но я не нашел там как указать загрузку макросов из каталога Far'а, оставив при этом пользователю профиль в его распоряжении. |
|
Этого пока нет, но теоретически можно сделать. |
|
JohnDoe: Это бы очень облегчило жизнь. Особенно если учесть, что макросы теперь не только хот-кеи переопределяют, но и успешно конкурируют с системой плагинов. Не удивлюсь если в своё время весь дополнительный функционал из папки с плагинами переедет в папку с макросами. |
|
shmuel: да у мне по большей части проблемой встало хот-кеи раскидать автоматизированно, так что мои запросы вполне могут вписаться в иные :-) |
|
Вариант с Far.exe.ini может быть чуть удобнее для пользователя, но кривой с точки зрения общей архитектуры, поскольку содержимое новых конфигурационных установок будет обрабатывать именно плагин, а не Фар. |
|
shmuel http://forum.farmanager.com/viewtopic.php?p=113289#p113289 P.S. Вполне можно рассматривать это как настройку фара, а плагин просто её учитывает. |
|
shmuel: Вариант с Far.exe.ini - это скорее для администраторов, если бы речь шла бы только обо мне любимом, то я бы просто расположил бы профиль пользователя в каталоге FAR'а и не грустил :-) А так, распространяя Far в большой сети, где не все компы в силу спицифики состоят в домене, хотелось бы макросы ставить централизовано, в частности хот-кеи. А что удобнее вам было бы я не знаю, т.к. мне не известны ваши нужды и желания. |
|
> Вполне можно рассматривать это как настройку фара, а плагин просто её учитывает. Это понятно, но во-первых это не настройка Фара, а во вторых не вижу заметного выигрыша. И мне это кажется кривым решением, поскольку появляется ничем не обоснованная зависимость от файла конфигурации Фара. |
|
ladserg: А вариант БЕЗ конфигурационного файла, но с диалогом конфигурации плагина, при этом данные сохраняются в базе данных плагина, вам подходит? |
|
В базу плагина можно ведь поместить данные посредством Default.farconfig? |
|
Да, при условии изначального отсутствия профиля Фара. |
|
shmuel: я не понимаю о каком плагине идет речь, у меня есть несколько макросов, где переопределяются хоткеи, мне надо как то их подключать пользователям на компьютерах. Файлы с макросами стандартными средствами ни импортирутся ни экспортируются. Да я могу организовать сторонние решения по подключению этих (и возможно будующих) макросов пользователям, но это всё, мягко говоря неудобно. Самый простой способ, это например указать где то глобально, что макросы будут лежать в папке %FARHOME%\Macros, при этом остальной профиль Far'а должен остаться в локальном каталоге профиля. Минус такого подхода - сами пользователи ничего изменить не смогут, ибо они работают под ограниченными правами, плюс такого подхода в том, что если я все таки решу туда добавить макрос реализующий, например калькулятор (на днях такой смотрел, и плагин не надо), то мне достаточно перезакатать MSI и распространить его заново, и макрос подключится у всех. Пользователи между компами перемещаются, все документы у них в сети, настройки либо доменом раздаются, либо по умолчанию, сейчас второй фар у всех стоит, там всё просто - политика импортирует настройки в реестр пользователя и всё, как с третьим быть я не знаю, благо вот сделали Default.farconfig. |
|
> я не понимаю о каком плагине идет речь * Стандартный плагин LuaMacro, входит в поставку Фара. * Его база данных находится в папке %FARPROFILE%\PluginsData. * Как уже было отмечено выше, данные из Default.farconfig (если они там имеются), попадают в базу данных плагина. Я думаю так, наверное сделаю экспериментальный вариант, а вы попробуете. А то мы так долго можем ходить вокруг да около. |
|
shmuel: А макросы из файлов каталога %FARUSERPROFILE%\Macros\scripts тоже плагин LuaMacro выполняет? |
|
Да, без этого плагина нет макросов (начиная с Far 3.0.2851). |
|
shmuel: Так это он виноват в моих бедах? :-) Ну, выходит, что если его убедить как то брать макросы из каталога фара а не из каталога пользователя, или из обоих каталогов, то выходит всё получится. Хм, всё таки как то неудобно, что макросы нельзя средствами фара забакапить :-/ |
|
|
|
ladserg: Первый экспериментальный вариант залит здесь: http://bugs.farmanager.com/file_download.php?file_id=1228&type=bug - Нужно распаковать в папку плагина LuaMacro и перезапустить Фар. - Вызвать диалог конфигурации LuaMacro через AltShiftF9, ввести %FARHOME%\Macros (или любую другую последовательность путей, разделённых точкой с запятой) и нажать Enter. - Перезапустить Фар или перезагрузить макросы. |
|
shmuel: сейчас попробую. А просто строчку где то поправить нельзя? |
|
shmuel: работает, причем именно так как я просил в самом первом посте. А можно сделать так, что бы я в папке плагина где то путь прописал и он применялся даже к уже созданному профилю? Сейчас через Default.farconfig всё экспортируется/импортируется нормально, уже проверил. Можно, кстати, брать строку с путями из, скажем, файла, %FARHOME%\luafar.ini, если таковой существует. |
|
>где то путь прописал и он применялся даже к уже созданному профилю Берёте базу данных плагина с прописанным путём, и копируете в профиль фара Или же путь можно импортировать из xml-файла. |
|
> А можно сделать так, что бы я в папке плагина где то путь прописал > и он применялся даже к уже созданному профилю? Сделать можно, конечно, но я как раз хотел обойтись без новых сущностей (т.е. дополнительного файла). Объясните, какими для вас недостатками обладает данный вариант? |
|
JohnDoe: чот от меня тогда ускользает смысл всего этого топика, если всё делать руками (или строгать велосипеды из скриптов) то увы, тогда все труды нашего собеседника (shmuel) на смарку. |
|
А строчку в файле вы не руками собираетесь менять? |
|
shmuel: Данный способ очень хорош, при пустом профиле настройки импортируются и макросы даже берутся из обоих каталогов (не знаю правда так и должно быть или нет, но макросы считываются и из каталога профиля пользователя и из каталога что указан в диалоговом меню). Глобализация данной настройки позволит подключать макросы независимо от пользовательских настроек, сейчас если профиль был уже создан, то придется настройки импортировать вручную, как предлагает JohnDoe, там кстати нет нужды что то копировать, достаточно выгрузить настройки плагина в XML файл а потом импортировать, но всё равно это ручной труд. Кстати, такой настройкой можно будет отключать локальные (пользовательские) макросы, поверьте, немало администраторов одобрят такое новшество. Возможно не понятно почему для меня это важно, но я уверен, что в дальнейшем макросов станет больше, а то и макросы заменят плагины, тогда при такой вот глобальной настройке на компьютерах, где уже используют Far добавить новый макрос (а то и удалить, такое тоже вполне возможно) будет просто, всего лишь распространив новый MSI пакет, как такой пакет создавать при помощи MAKEMSI я на форуме уже писал. Но даже если и не будет такой глобальной настройки, то что вы сделали уже намного больше, чем я ожидал. А если это ещё попадёт в официальную сборку то будет совсем прекрасно. П.С. Кстати, а если не секрет чем создаётся официальный пакет MSI и где то можно глянуть исходники из любопытства (а мож и чего перенять)? |
|
JohnDoe: Дык её же один раз поменял, закатал в MSI и забыл про неё. Потом только обновляй файлы, меняй версию и дату, запускай батник (в принципе обновлять можно и батником) и снова распространяй пакет, строчку меняю в одном месте, один раз, а эффект распространится на каждый профиль пользователя на каждом компьютере. Тут кстати, строчка вне каталога с плагином была бы удобнее, что бы при обновлении плагина строчку не менять. А если она в ini файле так там делов то, сам MSI при установке пакета её добавлять будет. |
|
>Дык её же один раз поменял, закатал в MSI и забыл про неё Один раз перезаписал базу плагина всем существующим пользователям и забыл (новым пользователям применяется из Default.farconfig) |
|
Для меня это около 400 компьютеров, на каждом из них по 4-5 профилей. Не, если не будет такой возможности, то конечно придется руками вносить, куда деваться, при чем ничего копировать не надо. Запускаем: Far.exe /export luafar.farconfig Затем выкусываем всё лишнее, у меня осталось вот это: <?xml version="1.0" encoding="UTF-8"?> <farconfig version="3.0.4062"> <generalconfig> <setting key="System.KnownIDs" name="Luamacro" type="text" value="4EBBEFC8-2084-4B7F-94C0-692CE136894D"/> </generalconfig> <pluginsconfig> <plugin guid="4EBBEFC8-2084-4B7F-94C0-692CE136894D"> <hierarchicalconfig> <key name="4EBBEFC8-2084-4B7F-94C0-692CE136894D" description="LuaMacro"> <key name="LuaMacroConfig" description=""> <value name="ExtraMacrosPath" type="text" value="%FARHOME%\Macros"/> </key> </key> </hierarchicalconfig> </plugin> </pluginsconfig> </farconfig> И потом ручками,запускаем под каждым пользователем: Far /import luafar.farconfig Не забыв предварительно распространить новый пакет с этим файлом. Можно батник с командой выше добавить. Только согласитесь, вот если что то можно поручить компьютеру, то зачем делать самому? |
|
ladserg: а то, что любой пользователь сможет через диалог конфигурации плагина стереть %FARHOME%\Macros, для вас проблемой не является? (Спрашиваю просто из любопытства). |
|
shmuel: если этот параметр будет глобальный, то пользователь его поменять не сможет, он же будет в одном из файлов в каталоге Far'а, а туда у пользователей прав на изменение нет. Ведь глобальный параметр будет перебивать локальный, и пусть они изменяют, что хотят, всё равно действия не возымеет. Ну а пока - да, напрягает. |
|
|
|
Попробуйте 2-й экспериментальный вариант: http://bugs.farmanager.com/file_download.php?file_id=1229&type=bug - Распаковать в папку плагина LuaMacro (оригинальную, не патченую) - Отредактировать файл luamacro.dll.ini (для вашего случая я уже это сделал) - Перезапустить Фар |
|
shmuel: Вы просто волшебник. Вы очень сильно облегчили мне и ещё много кому жизнь. Патч проверил, работает. Правда как и в предыдущем случае если в ini файле указан только каталог в FARHOME, то макросы всё равно берутся как из указанного каталога, так и из локального профиля пользователя. Указал несколько каталогов через точку с запятой. Работает, берется из обоих каталогов. Спас ибо вам огромное. Не могли бы вы ответить на пару вопросов: 1. Можно ли ожидать данный патч в официальных релизах Far Manager? 2. Можно ли сделать так, что бы при пустой переменной ExtraMacrosPath макросы считывались только из локального каталога, а если ExtraMacrosPath не пуста, то макросы считывались бы только из каталогов указанных в ExtraMacrosPath? |
|
1. Естественно, цель данных экспериментов - улучшение Far Manager. Но хотелось бы это сделать наилучшим образом. 2. Сделать можно, но не очень ясно зачем. Вы хотите своим пользователям вообще перекрыть воздух? |
|
shmuel: >Сделать можно, но не очень ясно зачем. Вы хотите своим пользователям вообще перекрыть воздух? Не совсем, если честно то мои пользователи очень хорошие специалисты в своих профессиях, но вот файл с макросом скопировать им не под силу, а если быть точным они и не задумываются о том, что есть такая вещь как макросы в Far Manager. Так что они совсем не пострадают от этого. Прежде всего мне хотелось бы исключить возможность инициализации двух макросов, из локального каталога (там где уже засунуто) и из каталога Far'а одновременно, т.к., например, это удобную кнопочку Esc (скрывающую панели) превратит в запускалку непонятного окна с непонятным выбором из двух непонятных строк :-) Так же иногда требуется больше контроля в возможности завернуть гайки исходя из специфики и требований местных служб безопасности, и в некоторых случаях отключение возможности подключать свои макросы в Far пользователями желательна. Ну и к тому же всегда можно добавить два каталога, примерно так: ExtraMacrosPath=%FARHOME%\Macros;%FARPROFILE%\Macros\scripts Но скажу честно, это желательно, но так сейчас есть - не смертельно, и даже наоборот, появилось очень большое удобство и гибкости стало больше. |
|
Подумаю над этим. Но "клавиатурные" (записываемые вручную) макросы, скорее всего, останутся в %FARPROFILE%\Macros\internal, независимо от установок в ini-файле. |
|
shmuel: думаю что это уже не страшно. |
|
Можете пробовать сегодняшнюю ночную сборку Фара. |
|
shmuel: Спасибо вам огромное, в ночной сборке Far всё работает превосходно, правда в файле luamacro.example.ini в строке: MacroPath=%FARPROFILE%\Macros\scripts% последний знак процента кажется лишним. Макросы как и хотелось только из указанных каталогов, от куда не надо не грузятся. Проверялось на пустых и только созданных профилях. Спасибо вам большое за вашу помощь. П.С. А как закрыть обе мои хотелки на данную тему, с флагом выполнено? |
|
> последний знак процента кажется лишним. Спасибо, что заметили (поздно уже было, сильно спать хотелось). > А как закрыть обе мои хотелки на данную тему, с флагом выполнено? Сейчас закрою. |
|
Прошу прощения. Может стоит параметр MacroPath переместить в секцию [General]? А то он сейчас без секции и это не совсем соответствует привычному формату INI файла, согласно котором программы и библиотеки функций видят значения в INI файлах исключительно в виде: Секция[Параметр] = Значение В принципе не существенно, можно наплевать, но я давеча с удивлением обнаружил, что тот же MAKEMSI может внести изменение только в именованную секцию, Inno Setup, если мне не изменяет память, значение без секции тоже внести не может, в то время как после переноса переменной MacroPath в какую либо секцию плагин LuaMacro перестаёт её понимать. |
|
Если "не существенно", то не стоило поднимать этот вопрос, тем более дублировать здесь и на форуме. По-видимому для вас это существенно. Хорошо, в ближайшие дни будет. |
|
shmuel: Спасибо, что ответили. Для меня это существенно. Несущественно это может оказаться для других. Я не точно выразился. Ещё раз спасибо. |
|
Сделано, будет в очередной ночной сборке. |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-08-21 07:43 | ladserg | New Issue | |
2013-08-21 07:56 | shmuel | Severity | minor => feature |
2013-08-21 07:56 | shmuel | Category | _Common => Macro |
2013-08-21 08:45 | alexy | Project | Far Manager => Wishes |
2013-12-27 10:33 | JohnDoe | Note Added: 0011610 | |
2014-02-09 15:45 | shmuel | Relationship added | related to 0002267 |
2014-08-21 06:21 | ladserg | Note Added: 0012879 | |
2014-08-21 10:49 | shmuel | Note Added: 0012881 | |
2014-08-21 11:00 | ladserg | Note Added: 0012882 | |
2014-08-21 11:09 | shmuel | Note Added: 0012883 | |
2014-08-21 11:12 | JohnDoe | Note Added: 0012886 | |
2014-08-21 11:16 | ladserg | Note Added: 0012887 | |
2014-08-21 11:19 | JohnDoe | Note Added: 0012888 | |
2014-08-21 11:23 | ladserg | Note Added: 0012889 | |
2014-08-21 11:26 | ladserg | Note Added: 0012890 | |
2014-08-21 11:36 | shmuel | Note Added: 0012891 | |
2014-08-21 11:36 | shmuel | Note Edited: 0012891 | |
2014-08-21 11:40 | JohnDoe | Note Added: 0012892 | |
2014-08-21 11:41 | ladserg | Note Added: 0012894 | |
2014-08-21 11:42 | JohnDoe | Note Edited: 0012892 | |
2014-08-21 11:48 | shmuel | Note Added: 0012895 | |
2014-08-21 12:47 | shmuel | Note Added: 0012896 | |
2014-08-21 13:10 | JohnDoe | Note Added: 0012897 | |
2014-08-21 13:11 | JohnDoe | Note Edited: 0012897 | |
2014-08-21 13:16 | shmuel | Note Added: 0012898 | |
2014-08-21 13:21 | ladserg | Note Added: 0012899 | |
2014-08-21 13:34 | shmuel | Note Added: 0012900 | |
2014-08-21 13:34 | shmuel | Note Edited: 0012900 | |
2014-08-21 14:03 | ladserg | Note Added: 0012901 | |
2014-08-21 14:06 | shmuel | Note Added: 0012902 | |
2014-08-21 14:36 | ladserg | Note Added: 0012905 | |
2014-08-21 15:41 | shmuel | File Added: LuaMacro-1.7z | |
2014-08-21 15:47 | shmuel | Note Added: 0012906 | |
2014-08-21 17:13 | ladserg | Note Added: 0012907 | |
2014-08-21 17:24 | ladserg | Note Added: 0012908 | |
2014-08-21 17:26 | ladserg | Note Edited: 0012908 | |
2014-08-21 17:38 | JohnDoe | Note Added: 0012909 | |
2014-08-21 17:39 | JohnDoe | Note Edited: 0012909 | |
2014-08-21 17:53 | shmuel | Note Added: 0012910 | |
2014-08-21 19:26 | ladserg | Note Added: 0012911 | |
2014-08-21 19:34 | JohnDoe | Note Added: 0012912 | |
2014-08-21 19:36 | ladserg | Note Added: 0012913 | |
2014-08-21 19:39 | ladserg | Note Edited: 0012913 | |
2014-08-21 19:44 | ladserg | Note Added: 0012914 | |
2014-08-21 19:45 | ladserg | Note Edited: 0012914 | |
2014-08-21 19:47 | JohnDoe | Note Added: 0012915 | |
2014-08-21 20:01 | ladserg | Note Added: 0012916 | |
2014-08-21 20:03 | ladserg | Note Edited: 0012916 | |
2014-08-22 07:22 | shmuel | Note Added: 0012917 | |
2014-08-22 07:37 | ladserg | Note Added: 0012918 | |
2014-08-22 17:35 | shmuel | File Added: LuaMacro-2.7z | |
2014-08-22 17:38 | shmuel | Note Added: 0012921 | |
2014-08-22 18:10 | ladserg | Note Added: 0012922 | |
2014-08-22 18:23 | shmuel | Note Added: 0012923 | |
2014-08-22 18:45 | ladserg | Note Added: 0012924 | |
2014-08-22 18:59 | shmuel | Note Added: 0012925 | |
2014-08-22 19:02 | ladserg | Note Added: 0012926 | |
2014-08-23 00:48 | shmuel | Note Added: 0012927 | |
2014-08-23 10:54 | ladserg | Note Added: 0012928 | |
2014-08-23 11:00 | shmuel | Note Added: 0012929 | |
2014-08-23 11:03 | shmuel | Build | => LMb414 |
2014-08-23 11:03 | shmuel | Status | new => closed |
2014-08-23 11:03 | shmuel | Assigned To | => shmuel |
2014-08-23 11:03 | shmuel | Resolution | open => fixed |
2014-08-27 21:51 | ladserg | Note Added: 0012937 | |
2014-08-27 21:51 | ladserg | Status | closed => feedback |
2014-08-27 21:51 | ladserg | Resolution | fixed => reopened |
2014-08-27 21:52 | ladserg | Note Edited: 0012937 | |
2014-08-28 05:54 | shmuel | Note Added: 0012938 | |
2014-08-28 05:58 | ladserg | Note Added: 0012939 | |
2014-08-28 05:58 | ladserg | Status | feedback => assigned |
2014-08-28 18:51 | shmuel | Note Added: 0012942 | |
2014-08-30 07:15 | shmuel | Build | LMb414 => LMb423 |
2014-08-30 07:15 | shmuel | Status | assigned => closed |
2014-08-30 07:15 | shmuel | Resolution | reopened => fixed |