LINUX.ORG.RU

Midnight Commander - Mountpoint selector

 ,


1

3

В mc раньше был реализован функционал быстрого доступа к точкам монтирования в правой и левой панелях через Shift+F1/F2 - очень не хватает иногда на машине с несколькими дисками.

Вот есть тикет с характерным номером: https://midnight-commander.org/ticket/1488

Пожалуйста, подскажите, как включить этот функционал в mc 4.8?

Перемещено beastie из desktop

Судя по тикету, фичу забросили пару лет назад. Можешь попробовать сам наложить патч и перекомпилировать mc. Если, конечно, этот патч ничего не сломает в новой версии коммандера.

Gonzo ★★★★★ ()

Можно распарсить df и дать вывод в ~/.config/mc/hotlist

anonymous ()

Я таскаю этот патч для сборки mc для себя уже несколько лет. В своё время предлагал то, что насобирал для mc разработчикам (в том числе и этот патч), но они посчитали эти патчи либо не актуальными, либо писанными не по фен-шую.

Так что если интересно, могу этим патчем поделитьтся. Правда, лучше бы точно указать версию mc, к которой будет прикладываться этот патч.

ose ()

В mc раньше был реализован функционал быстрого доступа к точкам монтирования в правой и левой панелях через Shift+F1/F2

Никогда такого не было.

akk ★★★★★ ()

А он только нужные точки монтирования показывает? Юзеру-то на самом деле, как правило, из всего списка нужны сменные носители, ну и, возможно, /home (и то, для быстрого доступа к своим данным лучше нужное навтыкать в Ctrl+\). Остальное только список захламлять будет...

anonymous ()
Ответ на: комментарий от ananas

Ну мало ли в каких форках и каких патчах что-то было. Все форки благополучно канули в Лету. В апстриме такого не было никогда.

Я согласен с предыдущим оратором, что смысла в списке точек монтирования практически нет.

akk ★★★★★ ()
Ответ на: комментарий от akk

смысла в списке точек монтирования практически нет

это кому как. мне лично возможность смены текущего пути неактивной панели вместо кучи телодвижений с ctrl+\ была бы очень даже осмысленной

ananas ★★★★★ ()
Ответ на: комментарий от ananas

Ну, поскольку конкретную версию mc никто не озвучивал, выкладываю патч, применимый для последней - 4.8.19. На самом деле и к более старым версиям mc прикручивается без особых проблем.

Если не изменяет память, то второй патч нужен для того, чтобы из меню выбора точек монтирования работали xsmb и xnet (для подробностей смотрим README.X)

https://yadi.sk/d/VjFqTHFj3HJ6R2

ose ()
Ответ на: комментарий от ose

ose, благодарю, сработало: https://s15.postimg.org/c0axbp117/2017-04-24-175702_1280x800_scrot.png

Только вот многовато для меня точек монтирования. Подскажи, пожалуйста, можно ли убрать с 0 по q, чтобы начинались с /home?

И можно ли добавить конкретные пути в это меню вместо/вместе точек монтирования?

federk ()
Ответ на: комментарий от akk

смысла в списке точек монтирования практически нет.

Лично для меня смысла в 90% функций mc нет. Не выбрасывать же их по этой причине?

i-rinat ★★★★★ ()
Ответ на: комментарий от federk

Ну да, в линуксе список получается изрядный. Сам я на фряхе сижу, поэтому там с таким особо не сталкивался. Хотя, если использовать ZFS, то тоже до фига точек монтирования будет, правда всё равно поменьше, чем тут на скриншоте. ;-)

Как уже было сказано, автор идеи и кода Oleg «Olegarch» Konovalov, я же только «пильщик-подгонщик» этого кода, к тому же не программер. Есть одна идейка, попробую её реализовать, но совершенно не обещаю результат.

Если есть желающие облагородить это, а ещё лучше добавить в основной код - добро пожаловать! ;-)

ose ()
Ответ на: комментарий от federk

Не претендую на правильность написания, но у меня работает.

https://yadi.sk/d/EUEcScFT3HKnP6

Чтобы скрыть ненужные элементы нужно указать их в ~.mc/ini в секции [Misc], ну или сохранить настройки и уже после этого править эту строку:

selmnt_filter=:/dev:/dev/fd:/proc:

Значение по умолчанию "::", двоеточия в начале и конце строки обязательны.

ose ()
Ответ на: комментарий от ose

Очень признателен, благодарю! То что надо:

https://s1.postimg.org/xytk3z19b/2017-04-25-131459_1280x800_scrot.png

ose, а не будет ли большой наглостью с моей стороны попросить тебя ещё реализовать возможность добавления конкретных путей после точек монтирования в этом меню? (через аналогичную строку, например, вида selmnt_path=:/var/www:) Если не затруднит сделать такой патч - буду крайне признателен - ведь получится идеальное меню быстрого доступа в результате.

Часто выбираю определённые каталоги для складирования файлов - сейчас приходится нажать: [tab],[ctrl+\],стрелками выбрать путь,[enter],[tab] - и только потом копировать, итого - более 5 нажатий. А с усовершенствованным selmnt: [shft+f2] и номер точки монтирования/конкретного пути - и можно копировать, итого - всего два нажатия клавиш.

Ещё раз благодарю за рабочий патч и заранее признателен за дополнительный функционал.

federk ()
Ответ на: комментарий от ose

Я таскаю этот патч для сборки mc для себя уже несколько лет. В своё время предлагал то, что насобирал для mc разработчикам

Может тебе тогда форк сделать?
Буду очень рад если mc получит новый толчёк к развитию.

Если не хочешь вести форк сам то его могу сделать и я, а тебе дам права контрибьютора.

torvn77 ★★★★★ ()
Ответ на: комментарий от federk

Продолжаем шалить... Проверяйте.

https://yadi.sk/d/G_etcAKu3HN9FP

2. Добавлена возможность включения в список точек монтирования содержимого файла путей быстрого доступа ~/.mc/hotlist. Чтобы данный список не разрастался до неприличного размера, включение элементов hotlist ограничено только первым уровнем, исключая те элементы, которые находятся внутри групп. Чтобы использовать элементы hotlist при вызове Shift+F1/F2 нужно добавить в ~/.mc/ini строку:

selmnt_with_hotlist=true

Это из README.X.

От себя добавлю. Использовать ещё один фильтр считаю нескольно неверным идеологически. Ведь такой фунционал - быстрого доступа к каталогам - уже реализован и реализован неплохо. Поэтому и решил привязаться к нему. К тому же это хорошая возможность добраться до hotlist и причесать его. ;-)

ЗЫ. Ещё раз повторяю - я не прогрммер. Если кто доведёт это до ума и совершенства - Welcome!

ose ()
Ответ на: комментарий от torvn77

Да какой это толчок к развитию? Всё, что я делаю - это беру текущие исходники и прикручиваю их к ним. Развития MC это не подразумевает.

Для себя я пока остановился на mc^2 от mooffie. Последняя его ветка базируется как раз на последних исходниках 4.8.19. Но вот будет ли дальнейшее развитие - хз. Во всяком случае сайта с проектом уже нет... :-(

Есть желание - могу тебе прислать все свои накопления.

ose ()
Ответ на: комментарий от ose

ose, премного благодарен, всё отлично получилось:

https://s8.postimg.org/ued6k5zit/2017-04-26-144022_1280x800_scrot.png

Теперь лично для меня работа с файлами на локалхосте и на удалённых серверах через mc будет, наверное, процентов на 30 быстрее. Крайне признателен за твой труд.

federk ()
Ответ на: комментарий от ose

Добавлю ещё, кстати....

Если строку в файле hotlist привести к виду

ENTRY «~oDocuments» URL «/home/ose/documents»

то символ, идущий да тильдой (~) будет назначен хоткеем для этого элемента. Правда, контроль за этими хоткеями тогда уже на совести юзера.

Ну и при вызове хоткеев по Ctrl+\ названия пунктов будут несколько несуразными, с префиксами ~<символ>. Но тут уж кому что нравится. ;-)

Получится как-то так...

https://yadi.sk/i/yaG3cvxR3HPGbc

ose ()
Ответ на: комментарий от ose

Ну тогда как приеду домой сделаю форк на гитхабе.
У тебя есть там аккаунт?
Если нет то сделай, чтобы потом от него прислать ко мне патчи.

И как тебе такое название для форка: Mid Daily Commander
Тогда имхо можно будет оставить привычное mc ну или на худой конец mdc сделать.

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от torvn77

Аккаунта на GitHub'е нет и в ближайшее время не будет.

По поводу названия - в природе уже есть проекты с подобным названием - MidDay Commander - файлменеджер для какой-то ОСи, я даже не понял, какой (http://computercraft.ru/topic/940-failovyi-menedzher-midday-commander-oc/) и аддон к файрфоксу так же с функциями файлменеджера (https://addons.mozilla.org/ru/firefox/addon/midday-commander/). Так что думаю, что название не сильно удачно.

И вообще, по поводу форка лично я смотрю на это очень скептически. Какой форк может быть без развития? Пусть уж лучше это так и остаётся набором патчей. Самое лучшее, чтобы у MC снова появился нормальный разработчик (а то и группа разработчиков). И вот их уже настоятельно просить, чтобы интегрировали нужные патчи в основную ветку.

Так что я просто предлагаю всем желающим свой набор, надеюсь, авторы этих патчей в обиде не будут.

https://yadi.sk/d/XKPIjvF43HQkBK

Файлы долго лежать на я-диске не будут, от силы пару недель, так что успевайте. ;-)

Патчи адаптированы к 4.8.19, прикладываются без напильника. Каталог 03-files - ссылка на /usr/ports/misc/mc/files. Это актуально для системы портов FreeBSD, в Linux не нужен. Предыдущая версия патча selmnt является частью данного набора (04-ose/99-12-selmnt.patch). Если кто захочет использовать его отдельно от остальных патчей, будьте готовы к предупреждениям при приложении патча, сборке это не помешает.

Кстати, теперь за ручным назначением хоткеев в hotlist можно следить не так рьяно, как в прошлой версии. ;-)

Как-то так...

ose ()
Ответ на: комментарий от Bad_ptr

Спасибо, если только для себя. Мысли по поводу форка я изложил в предыдущем сообщении. Так что распространить эти патчи я не смогу.

ose ()
Ответ на: комментарий от ose

Спасибо, как доберусь до компьютера посмотрю.
А пока у меня вопрос, там есть список патчей с сылками на место публикации и авторов?

torvn77 ★★★★★ ()
Ответ на: комментарий от torvn77

Нет, конечно... Эти патчи собирались порядка 10-13 лет, какие-то давно удалены мною (вернее, отложены в архив ;-)) за ненадобностью или неактуальностью, какие-то всё-таки были внесены в основное дерево разработчиками. Какие-то были позаимствованы у Alt- или ASPLinux (за давностью уж и не помню), какие-то у редхата. Что-то найдено на файловых свалках, посвящённых MC, коих в то время было до фига... Ну а про Olegarch'а я уже писал.

Так что, к сожалению, авторов и источники я сказать не смогу. Хотя, может, если комментарии в файлах просмотреть, что-то и можно будет узнать...

Во всяком случае, я старался патчи не объединять (за редкими исключениями, типа правки mc.ext или keymap-файлов).

ose ()
Ответ на: комментарий от ose

Так что я просто предлагаю всем желающим свой набор, надеюсь, авторы этих патчей в обиде не будут.
https://yadi.sk/d/XKPIjvF43HQkBK
Файлы долго лежать на я-диске не будут, от силы пару недель, так что успевайте. ;-)

Посмотрел что ещё за патчи там у тебя. Захотелось некоторые другие поставить, отличная подборка. Благодарствую.

Только вот в выложенном архиве у тебя папка 03-files отсутствует - символическая ссылка вместо неё. Перезальешь с ней? Интересно что там.

federk ()
Ответ на: комментарий от ose

Форкать mc пока раздумал, все твои патчи с темы собрал и сохранил на гуглодиск,
кто хочет приходи и качай без СМС и Регистрации.
https://drive.google.com/drive/folders/0B0QyHzYdvhopZHVDYTF2dmpEZDA?usp=sharing

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 3)
Ответ на: комментарий от federk

Про 03-files уже писал - это ссылка на каталог, где система портов FreeBSD ищет официальные для данной версии порта (любого, не только MC, только для каждого порта свой каталог files) патчи. Их туда помещает майтейнер порта. От версии к версии файлы патчей могут там меняться/удаляться/прибавляться. В общем, это каталог, специфический для FreeBSD. На данный момент в этом каталоге один патч, который исправляет поведение именно фряшной консоли при нажатии Ctrl-O.

Так что для линуксового сообщества этот каталог не нужен абсолютно и в архив попал исключительно потому, что я архивировал весь свой каталог без купюр. ;-)

01-to-git - тут сложнее. Я это каталог создал, когда узнал, что MC можно скачивать не только с сайта разработчика, а и с гитхаба тоже. Вот и повыдирал оттуда наиболее интересные для меня опции. Справедливости ради нужно сказать, что пару-тройку (не больше) тех изменений всё же внесли в основное дерево. ;-)

Так что работе с git-репозиториями они не помогут. ;-)

Но ведь и в самом MC есть gitfs. Сам не пробовал, но мне кажется, это именно то, чего ты ожидаешь. Нет?

ose ()
Ответ на: комментарий от ose

Про 03-files уже писал

А, да, прошу прощения, невнимателен.

01-to-git - тут сложнее.

Ясно. Сделал себе скроллбары оттуда.

Но ведь и в самом MC есть gitfs. Сам не пробовал, но мне
кажется, это именно то, чего ты ожидаешь. Нет?

Нет, хотелось бы возможность заходить на репозиторий не клонируя его себе (а с mc's gitfs это необходимо, как я понял), чтобы отдельные файлы оттуда смотреть/копировать, хотя бы из мастера, ну и совсем классно было бы - если есть соответствующие привилегии - делать git/push обычным копированием. Ну это я многого хочу, конечно. Всё это конечно можно сделать и через вебинтерфейс, но всё же.

federk ()
Ответ на: комментарий от federk

Выдержка из README.X:

============= 05.05.2017 - Добавлено ose.

1. Изменён алгоритм обработки списка смонтированных файловых систем. Раньше, если список содержал только одну запись (не важно, на самом деле или при использовании selmnt_filter), MC падал при нажатии Shift+F1/F2. Теперь список вообще может быть пустым. В случае, если список не содержит элементов или содержит только один элемент, по умолчанию никакого окна выбора точек монтирования не выводится. При добавлении в ~/.mc/ini строки:

selmnt_always_show=true

окно будет отображаться даже с одним элементом. При пустом списке окно не отображается никогда. Пустой список может быть полезен, ести есть желание в окне выбора точек монтирования видеть, например, только элементы hotlist.

2. При использовании в списке элементов hotlist или xnet/xsmb эти группы отделяются в окне разделителем с названием раздела «Hotlist» или «Network». При добавлении в ~/.mc/ini строки:

selmnt_separators_name_show=false

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

Архив перезалил, тестируйте. Как и в прошлый раз, файл на я-диске долго лежать не будет.

https://yadi.sk/d/BYeDCChk3HgvtG

ose ()
Ответ на: комментарий от ose

А по маске или иерархии скрыть можно?

Т.е. добавил в фильтр /sys:/dev:/proc и наблюдаешь в списке только «буквы дисков» без специальных ФС.

Radjah ★★★★★ ()
Ответ на: комментарий от i-rinat

Лично для меня смысла в 90% функций mc нет. Не выбрасывать же их по этой причине?

у mc есть классная фича - если ты случайно нажал не тот хоткей, и произошло что-то неприятное, то хрен знает, как ты это сделал, и, главное, как это вернуть обратно

вот так, незатейливо, mc ЗАСТАВЛЯЕТ тебя учить все его функции, даже самые ненужные

buratino ★★★★★ ()
Ответ на: комментарий от ose

ose, благодарю ещё раз, полезное дополнение - собрал из старых исходников на другой машине - начал падать при вызове меню, не успел разобраться из-за чего именно - увидел твой новый комментарий. Очень своевременное дополнение.

Ещё пробовал из твоей подборки 02-scrollbar.patch - хорошо смотрится скроллбар, но с ним меню поиска файлов ломается (M+? - при обнаружении файлов какие-то ошибки сыпятся, хотя сам mc не падает) - не сталкивался с этим? На мой взгляд скроллбар как раз в окне поиска файлов актуальнее всего.

На всякий случай упомяну здесь, что последняя версия твоего патч-пака доступна здесь: https://github.com/zlaxy/mc/raw/master/ose-mc-4.8.19-patches.tbz

А сами исходники mc-4.8.19 с 4 уже добавленными патчами из твоего архива (04-ose/99-02-f3-dirsize.patch, 04-ose/99-12-selmnt.patch, 04-ose/99-16-mc.charsets.patch, 04-ose/99-34-move_dir_dir_in_place.patch):

https://github.com/zlaxy/mc - доступны в этом git

federk ()
Ответ на: комментарий от federk

Мой давнишний косяк - просто я никогда поиском в MC не пользовался. ;-) Просто в своё время патч делал в том числе и для того, чтобы скролбар отображался всегда. А при поиске файлов это, наверное, единственный листбокс, который инициируется с нулевым количеством элементов. Отсюда и ошибка. Функционалу она не мешала, но диалог да, ломала. ;-)

Переливать архив не буду, правка минимальна. ;-)

В файле 01-to-git/02-scrollbar.patch ищем строки (они отосятся к lib/widget/listbox.c)

-    if (l->scrollbar && length > w->lines)
+    if (l->scrollbar)

и меняем на

-    if (l->scrollbar && length > w->lines)
+    if (l->scrollbar && length)

Кстати, если кто подскажет алгоритм расчёта позиции ползунка, чтобы он перемещался по скролбару от начала до конца (особенно заметно обратное на списках в два-три элемента), буду очень благодарен.

ose ()
Ответ на: комментарий от ose

В файле 01-to-git/02-scrollbar.patch ищем строки

Благодарю, помогло. Теперь мой mc, наверное, идеален.

federk ()
Ответ на: комментарий от Radjah

Я не до конца понял мысль. длина фильтра в зависимости от ОС от 256 до 4К байт. Кто мешает вписать в фильтр хоть все точки монтирования?

Распиши подробнее, что ты имел в виду.

ose ()
Ответ на: комментарий от ose

Есть /dev с devfs, внутри смонтировано /dev/pts и /dev/hugepages. Для /sys вообще строк 5.

Прописать в фильтр что-то типа :/dev*:/sys*:, чтобы оно всё сразу пропало.

Как-то так.

Radjah ★★★★★ ()
Ответ на: комментарий от Radjah

Из README.X

1. Добавлена возможность фильтрации точек монтирования в списке, вызываемом по Shift+F1/F2. Чтобы скрыть ненужные элементы нужно указать их в ~.mc/ini в секции [Misc] или сохранить настройки и уже после этого править эту строку:

selmnt_filter=^(/dev|/dev/fd|/proc|/var/.*)$

Значение по умолчанию «^()$». Это регулярное выражение, поэтому фильтр можно настроить достаточно гибко.

https://yadi.sk/d/KV36p1qp3J4jQm

Снова напоминаю, что файл долго лежать не будет.

ose ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.