LINUX.ORG.RU

Double Commander 1.0 beta

 , , ,


1

2

Double Commander — это кроссплатформенный двухпанельный файловый менеджер, распространяемый под лицензией GPLv2. Целью данного проекта является создание файлового менеджера, аналогичного по функциональности Total Commander и совместимого с его плагинами. Double Commander разработан на FreePascal и Lazarus.

Основные изменения:

  • миграция кодовой базы на GitHub;
  • повышение привилегий для файловых операций;
  • копирование расширенных атрибутов;
  • вертикальная панель инструментов между панелями;
  • синхронная навигация;
  • поиск дубликатов;
  • удаление отдельных элементов и прогресс файловых операций в диалоге синхронизациии каталогов;
  • поддержка Zstandard;
  • поиск в архивах, находящихся внутри архивов;
  • поиск текста в офисных документах;
  • поиск с использованием регулярных выражений в просмотрщике.

>>> Подробности

anonymous

Проверено: hobbit ()

Ответ на: комментарий от token_polyak

Пятнадцать лет использую Total Commander, иногда аналоги под онтопик. Никогда не нуждался в каких-то «интеграциях», файловый менеджер мне нужен исключительно для менеджмента файлами.

Так если их не было, не было возможности и не было разрешено вообще о таком думать.

Проблема линуксовых двухпанельников в том, что они все хуже обычной консоли

О том и речь, что построение фм обычно идёт от кнопок, а не от команд.

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

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

Pipeworld отдалённо концептуально похож (юниксвейно гонять всё отовсюду куда угодно, и не ограничиваясь текстом). Rio тоже, ну и в Haiku что-то подобное при стыковке окон, @X512 расскажут.

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

То, что Вы хотите, мало похоже на какой-нибудь существующий ФМ

От фм там надо только панельки с файлами с произвольным содержимым и произвольные кнопки/вкладки/метки.

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

Кокой ещё fstab? на лету монтируется командой, отмонтируется тоже.

Вы каждый раз руками набираете `sshfs имясервера путькпапке` а потом `fusermount -u путькпапке` ?
Это ж пол сотни символов!
А в MC — один хоткей и выбрать в списке.

К тому же ssh иногда отпадает. В ФМ это подвесит только сам ФМ.
А в случае FUSE повиснут ВСЕ программы, которые были рядом.
Открываю, скажем, диалог сохранения файла... и весь браузер виснет.

ФМ-ом выходит проще и проблем меньше.

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

Шг по умолчанию в этом кроссплатформенном сабже называются заморским словом default

Просто для сравнения: https://i.imgur.com/b907NbR.png

  1. Про шрифты уже сказал - добавить нечего
  2. Зачем по умолчанию и Кнопки дисков и Кнопка списков дисков? Нужно оставить что-то одно - будет меньше по вертикали места занимать.
  3. Если в totalcmd оставить только кнопки дисков, то информация о свободном месте отображается на этом же уровне, а в doublcmd - занимает отдельную строку
  4. Зачем отображается вкладка таба, если она всего одна? В totalcmd ее не видно пока не откроешь еще одну вкладку.
  5. Если в настройках убрать галку Вид окна => Кнопки дисков => Две панели кнопок дисков и нажать Применить, то программа падает.
  6. Цвета тоже по умолчани - так себе. Обратите внимание на выделенный каталог LANGUAGE
  7. Почему нету настройки, а только аргумент --no-splash? Заставка вырвиглазная и бесит при запуске. Сама иконка приложения - тоже на любителя.
Turbid ★★★★★ ()
Последнее исправление: Turbid (всего исправлений: 3)
Ответ на: комментарий от anonymous

Если рукожоп - возможно и штатная функция Lua может не заработать

Откуда я знаю, как его тут приготовили. На игорях часто луа кастрируют, чтобы вредоносы не делали.

В любом случае интеграции нет, из интерфейсов, которые модифицируют происходящее на панели только плагины, как красить, добавлять значки к произвольным файлам в зависимости от выхлопа, менять на ходу контекстное меню, я не нашел. Может ты знаешь, конечно:)

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

Гислер на оффтопике может позволить себе захардкодить по дефолту голубенький курсор с Segoe UI 9, а возле однобуквенных кнопок дисков всунуть за одно и свободное место. Под какими шг и нескушными темами запускается сабж или какой длинны названия у точек монтирования дисков одному б-гу известно. Сабж просто берет цвета и шг с заданными размерами из системной темы. Самым вырвиглазом считаю выкрученный размер иконок по дефолту. Наверное в угоду 4К мониторам, не знаю. Заставка появляется на момент инициализации и чтения этих самых настроек, очевидно же.

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

И какой абстрактной интеграции тебе все не хватает, кстати?

Установку произвольных/дополнительных иконок, света надписей/фона, содержимого контекстного меню, содержимого, какой-нибудь дополнительной колонки (плагин может и не подойти, нужно, чтобы по результату выполнения скрипта/событию), переназначения, как минимум функции просмотра и/или (ctrl-q) на лету (например, было бы не плохо по ctrl-q/f3 смотреть diff там, где это уместно или историю комитов, если курсор стоит на .., с самим окном, где будет этот выхлоп тоже можно было бы что-нибудь придумать интересного). Много какой интеграции надо бы. По сути это хотелки уже даже не для фс, а для платформы, которая крутит табличными/иерархическими данными, для которой фс - один из кейсов.
Json еще было бы круто развернуть в vfs, но я хз, как там сделать произвольные столбцы, автор DC не такой больной ублюдок.

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

Я ж тебя уже посылал на ман по файловым ассоциациям, на раскраску или скриптовые плагины vfs и псевдо-архивов могу также послать. Столбцы тоже не захардкожены, можешь делать наборы хоть с Обамой. При чем тут интеграция, с чем интегрировать-то хочешь?

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

Гислер на оффтопике может позволить себе захардкодить

А что, во freepascal уже запретили {$IFDEF WINDOWS} ?

Заставка появляется на момент инициализации и чтения этих самых настроек, очевидно же

Какую она несёт информационную нарузку, кроме бесячего мерцания на 1 секунду?

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

WINDOWS

Допустим автор сделает, если сюда вообще заглянет, тебе костыль для оффтопика, и? Всем хорошо вдруг станет или всем такие же костыли надо делать?

Какую она несёт информационную нарузку, кроме бесячего мерцания на 1 секунду?

https://en.wikipedia.org/wiki/Splash_screen#Purpose

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

Я ж тебя уже посылал на ман по файловым ассоциациям, на раскраску

Это не подходит. У меня все файлы .*cpp, например. Потом я что-то поменял. Мне надо, чтобы после нажатия кнопки/по таймеру/по событию скрипт с гитом их покрасил

скриптовые плагины vfs

Каталог с сорцами и гитом открывать в vfs? Слишком костыльно как-то. Хотя я бы посмотрел на то, какие-то примеры vfs на lua (беглый поиск ничего не дал)

Столбцы тоже не захардкожены

И да и нет.
Например вот: https://github.com/j2969719/doublecmd-plugins/blob/master/plugins/wdx/scripts...
Вот это выдает поля по индексу (вне зависимости от контекста)

function ContentGetSupportedField(FieldIndex)
    if (FieldIndex == 0) then
        return 'Label', '', 8; -- FieldName,Units,ft_string
Тут нужен контекст каталога, чтобы можно было на ходу менять состав полей.
function ContentGetValue(FileName, FieldIndex, UnitIndex, flags)
...
 local handle = io.popen(cmd .. ' "' .. FileName:gsub('"', '\\"') .. '" ' .. params, 'r');
Вот это - вообще всратая вещь, которая делает popen на каждое поле каждого файла. Надеюсь, оно не пытается так перебирать огромные каталоги на 10к+ файлов, иначе это всё полностью не юзабельно.

При чем тут интеграция, с чем интегрировать-то хочешь?

Например, хочу с гитом для начала. Ну тут типа да, можно popen'ом дрочить git как дебил (кстати, есть вообще варианты так не делать?) и наделать кнопок для комита, отката чекаута и пуша. Как заставить смотреть на ctrl-q diff - всё еще не понятно, ctrl-q там по тупо куску имени файла, без контекста того, что там лежит в каталоге.
Еще хочу, чтобы в json объекты и массивы были каталогами, а поля объектов, содержащие примитив - полями на панельке. И что бы при копировании каталога в фс, копировался в файл текст с json.
Потом можно будет еще на кнопки приделать всякие join'ы для двух json'ов и получение их через хттп.
Но тут я вообще без идей, проще сделать fuse драйвер походу:)

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

Это на любом матёром тулките в два счёта накидывается.

Ага, если до этого ты уже что-то на нём писал. Опять же, «накидывается» не нужно вообще, нужно динамически.

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

Это ж пол сотни символов!

И в чём проблема? Вы печатать не умеете? ;)

Альзо, осильте поиск в шелле по C-r, можно старые команды реюзать и минимально править.

А в случае FUSE повиснут ВСЕ программы, которые были рядом.

Сфига им виснуть? Кривовысирачевые разве что, заводите багрепорты :P В приличных просто ошибки доступа к ФС прут. Вот без рестарта программ это обычно не лечится, да.

В целом вредно, когда программы не расчитаны на внезапный отвал ФС: это ж и банальная флешка может быть, которую внезапно выдернули, например.

Вот когда не через FUSE монтировать, а через ядерные драйвера (NFS, скажем), то там треш, да: сисколлы виснут наглухо и вешают за собой всё без возможности прибить даже SIGKILL’ом. Лучше с ними не связываться.

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

С нуля, я могу сделать только веб версию на ноде, лул

Ну так делайте, лул. cloudcmd уже давно есть.

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

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

Нииксперт в плане написания конкретно сдешних плагинов и ем что дают, но в плане API там калька с Тотала. Не хочешь popen - бери libgit2, разрешаю.

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

Мне надо, чтобы после нажатия кнопки/по таймеру/по событию скрипт с гитом их покрасил

Красить можно по поисковому шаблону вместо маски, а там можно в WDX.

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

Еще хочу, чтобы в json объекты и массивы были каталогами, а поля объектов, содержащие примитив - полями на панельке. И что бы при копировании каталога в фс, копировался в файл текст с json

http://doublecmd.github.io/doc/ru/multiarc.html

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

надо делать?

Да. С каких пор кроссплатформенность == вырвиглазность?

В KDE тоже все плохо. Почему default шрифт всегда bold?

Что за фигня там в виде одного диска /run/user/1000/doc/ - зачем оно мне?

Splash screens are typically used by particularly large applications to notify the user that the program is in the process of loading. They provide feedback that a lengthy process is underway.

В данном случае оно мельтишит на одну секунду.

Splash screens typically serve to enhance the look and feel of an application

Поржал, да.

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

Просто настрой и забудь о дефолте как о страшном сне. Он одинаково вырвиглазный везде, инклюзивность.

Вот представь: сидит юзер на пекарне времен winxp и апм как у корейца. Может у него две или три секунды будет, а тут бац - этот скример по центру экрана. Больше кликать он не захочет.

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

Что за фигня там в виде одного диска /run/user/1000/doc/ - зачем оно мне?

Дубль Командир сам её специально смонтировал и убил твою собаку. Передай привет красношляпе или закинь ее в черный список.

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

шрифты

Справа явно выглядит посовременнее: пальцетыкательно и шрифты лопатоподобные. А слева Win9x-шное некровиндузятничество.

Зачем отображается вкладка таба

Чтобы неофиты в принципе замечали, что ФМ умеет во вкладки. А то годами будут не знать, не пользоваться и страдать. Кому глаза мозолит — скроют.

Заставка вырвиглазная и бесит при запуске

Некие ископаемые гайды по ЧМИ и ГИП гласят, что у программы непременно и обязательно должен быть сплешскрин, чтобы юзвери видели, что она запускается. На лялипсе с этим беда, кстати: сплешскрин кроме GIMP, LibreOffice и IcedTea у полутора программ есть ;) В гномокедах пилили какие-то свои полурабочие костыли с прыгающим курсором, которые ничего толком не индицировали фактически.

Именно это — одна из главных причин, почему Мы отказались от всяких там красивеньких лаунчеров и перешли на запуск любых графических программ из Bash. Во-первых, их удобно оттуда контролировать через jobs. Во-вторых — логи stderr (раньше срали прямо в шелл и мешали им пользоваться — перешли на nohup, и начали воротить скрипт для запуска в screen). В-третьих — если что-то упадёт, то шелл при выполнении следующей команды об этом напишет; без контроля программы просто незаметно падают (при запуске ли, или во время работы), и могут так проваляться незамеченными сутками — равно как и непонятно, запускается ли ещё программа или упала, и приходится дёргать всякие там диспетчеры задач для контроля.

Чтобы толково решить эти PITA — надо кардинально вообще переосмыслить концепцию графической оболочки, тоже @crutch_master на заметку. Во-первых, любой запущенный процесс должен явно отражаться в GUI, даже если у него нет ни одного окна: как в Mac OS Classic, только ещё более всеохватывающе. Даже если это чисто консольная программа: чтобы не надо было лазить по многовкладочным терминалам, табам tmux’а, задачам в шелле — а сразу на неё переключиться, автоматически пробравшись через все эти слои абстракции. Во-вторых, всякое окно должно иметь эдакую контрольную панель, например, сзади (привет Project Looking Glass!), где можно получить доступ к его stdout/stderr, опционально какой-нибудь конфигурятырь вызывать, и даже открытые процессом сокеты на лету переключать проводками! Даже когда окно падает — можно настраивать, чтобы оно не исчезало, а показывалось разбитое окно, к которому можно посмертно подключиться и произвести диагностику. Вот это красота будет! Гномокедошиндузятное быдло сдохнет от зависти!

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

Про шрифты уже сказал - добавить нечего

Да, у разрабов очень странное понимание того, как должен выглядеть дефолт. Может у них вообще поголовно плохое зрение. Но сложно поменять что-ли? Такие программы пишут не для домохозяек же. В бытность мою пользования TC на его настройку полчаса минимум уходило. Первым, что менял - отключал скобки на папках. До сих пор не могу понять, зачем они там?

Цвета тоже по умолчани - так себе. Обратите внимание на выделенный каталог LANGUAGE

И снова придирка по сути к шрифту. Поставь другой, не болд, сразу впечатление поменяется.

Зачем отображается вкладка таба, если она всего одна?

У тотала в дефолте разве не так же? Лет 10 не пользовал, не помню. У тебя точно два дефолта, а не дефолт и настроенный под себя вариант?

А так, может разрабов напрягает когда интерфейс перерисовывается из-за появления панели вкладок, может они эпилептики и бьются в припадке от этого. Может они вообще не понимают как можно работать без вкладок и опцию отключения добавили только по просьбам пары настойчивых маргиналов, оставив дефолт как есть. А вообще - отключается в настройках.

Почему нету настройки, а только аргумент –no-splash?

Это вендопроблемы? У меня в линуксе нет заставки. Вообще, заставки бесят, тут я согласен.

Сама иконка приложения - тоже на любителя.

У TC лучше? Смешно. У Гислера из 90-х, у DC из нулевых. Обе отстой.

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

И снова придирка по сути к шрифту. Поставь другой, не болд, сразу впечатление поменяется.

Да нет, там не в шрифте дело. Именно самое хреновое сочетание цветов - красным по синему.

У тотала в дефолте разве не так же? Лет 10 не пользовал, не помню.

Нет, посмотри на мой первый скрин - там слева тотал с чистым дефолтом.

У меня в линуксе нет заставки.

Проверил - есть, появляется на доли секунды.

Turbid ★★★★★ ()