Линукс-порт Far Manager: прогресс за 4 года

    Первая публикация исходников far2l, порта Far Manager под Линукс — штуки, которая когда-то считалась принципиально невозможной — состоялась 10 августа 2016го. Поскольку главный разработчик поговаривает о переходе проекта в статус беты, решил написать обзорный пост, как там идут дела и чего удалось добиться за прошедшие четыре года.

    Консольная версия


    Первый же вопрос, который все задавали и здесь, и на опеннете, и на лоре — а чего не в консоли? Изначально far2l действительно работал только в графическом режиме, через wxWidgets. Это оказалось самым простым способом быстро получить работающий порт со всеми пользовательскими удобствами: иксовым буфером обмена и всеми сочетаниями клавиш, причем с поддержкой событий не только KeyDown, но и KeyUp.

    Сейчас это ограничение в прошлом: far2l прекрасно себя чувствует в консоли. Более того, там появились так называемые расширения терминала far2l, поэтому если запускать консольный far2l внутри графического (например, зайдя куда-нибудь по ssh), они «сконнектятся» между собой, и внутренний far2l тоже будет видеть и буфер обмена (с разрешения пользователя, конечно), и все возможные горячие клавиши. Более того, сделана даже специальная сборка putty, позволяющая наслаждаться всеми этими фишками из Windows.

    Вот, смотрите, это far2l в GNOME Terminal



    А вот в putty



    Русские буквы в .zip'ах «с винды»


    Вы не поверите, но Windows, вплоть, как минимум, до семерки создавала .zip архивы, записывая туда имена файлов в OEM (DOS) кодировке! Совместимость страшная штука. В итоге StackOverflow переполнен вопросами «как мне правильно распаковать зип с кракозябрами».

    В far2l мы это починили. В процессе родилась демонстрационная утилитка, которая показывает, как правильно работать с кодировками в .zip'ах, чтобы «кракозябров» не было (пригодится авторам архиваторов), а также патчик к p7zip, применяющий аналогичный алгоритм. p7zip-с-патчиком даже запакован в .deb'ку (ubuntu 20.04+, amd64), установка которой чинит поддержку зипов, например, в Engrampa, используемом в MATE.



    Приведение в порядок зависимостей


    Изначально порт нёс в себе кучу кода библиотек, и так присутствующих в мире Linux в системных пакетах: pcre, minizip, universal charset detector. Сейчас всё это заменено на грамотное использование зависимостей: системные библиотеки используются везде, где это возможно (исключение: 7z и unrar, там статически компилируются самые свежие библиотеки для поддержки самых свежих особенностей форматов).

    Человеческая поддержка .tar.gz


    Плагин multiarc, который используется в far2l для доступа к архивам, приехал к нам из мира Windows, и не умел воспринимать .tar.gz как один архив. Он видел .gz, и внутри него .tar. Следовательно, чтобы получить список файлов, приходилось делать полную распаковку. Такой себе экспириенс. За последний месяц multiarc был существенно доработан, и эта проблема исчезла.

    Красивое консольное окно


    В графической версии far2l была проблема: символы рисования рамок показывались раздражающим «пунктиром».

    image

    У нас долго не получалось найти причину или подобрать настройки рендеринга, исправляющие этот бесячий баг, пока я не заглянул в исходники терминалок из GNOME и KDE. А там, оказывается, давным-давно символы рисования рамок рендерятся не из шрифта, а вручную, чтобы линии четкие и красивые получались.

    В итоге сделали так же в far2l, только немножко лучше: добавив сглаживание. А то в терминалах KDE и GNOME максимально контрастные линии слишком сильно отвлекают на себя внимание рядом со сглаженным текстом.

    В процессе пришлось разобраться в психовизуальных нюансах антиалиасинга, отлавливая несуществующие «слишком яркие пиксели», которые упорно видели глаза. Подробности.

    image

    Пакеты для дистрибутивов


    В репозитории многих дистрибутивов мы пока не попали (а в некоторые уже попали!). Зато давно есть пакеты во всех основных форматах. Даже скрипт сборки для Amazon Linux есть! Ну и, конечно, есть ppa для *buntu — самый удобный способ «просто поставить фар» для большинства пользователей.

    Свежий Colorer


    far2l «форкнулся» от ветки Far 2, так что некоторые плагины там требовали срочного обновления. Недавно такое обновление было проведено: обновили код распаковки 7z и unrar, а также схемы цветовой подсветки синтаксиса Colorer. Остальные портированные плагины не содержат каких-то регулярно обновляющихся штук, а вот старые «раскраски» и не открывающиеся новые архивы были реальной проблемой. Всё, её больше нет!



    NetBoxRocks


    Это был второй вопрос, который обычно задавали в каментах: «а нетбоооокс буууудеееет?». Нет, нетбокса не будет! Там putty внутри, и тащить в far2l её linux-версию показалось странной затеей. Да и сам код netbox'а не слишком располагал к портированию.

    Поэтому автор порта, великолепный elfmz, сделал свою версию сетевого плагина: NetRocks. Там есть всё, что только может понадобиться — и ftp[s], и scp, и sftp, и nfs, и webdav, и даже samba! Всё работает на нативных линуксовых библиотеках. В sftp можно даже удаленные команды запускать и в удаленную консоль ходить.

    А ещё в NetRocks есть псевдо-сетевой плагин file, который позволяет работать с локальной файловой системой. Зачем? Потому что NetRocks умеет в фоновые операции. А обычное копирование файлов Far — не умеет.



    А как там вообще с плагинами?


    Помимо NetRocks, в комплекте есть:

    colorer (подсветка синтаксиса, свежий!)
    multiarc (работа с архивами, доработанный, свежие архиваторы!)
    tmppanel (временная панель)
    align block (форматирование блоков для редактора)
    autowrap (автоперенос слов в редакторе)
    drawline (рисование линий в редакторе)
    editcase (конвертация регистра в редакторе)
    SimpleIndent (работа с отступами в редакторе)
    compare (продвинутая версия «сравнения папок»)
    editor autocomplete (автодополнение в редакторе)
    filecase (конвертация регистра имен файлов)
    incremental search («быстрый поиск» в редакторе)
    inside (показывает, что внутри ELF и некоторых других форматов)
    и даже плагин для написания других плагинов на Python!

    Есть парочка сторонних, far2-gvfs и far2l-fuse, но после появления NetRocks они в некоторой степени утратили актуальность.

    В общем, базовый набор для комфортной работы с локальными и удаленными файлами и архивами, а также написания кода прямо в редакторе far2l — имеется :)

    А со стабильностью как? Когда релиз уже?


    Со стабильностью всё хорошо: за 4 года использования в работе (webdev + всякое офисное) ни одной потери данных с far2l я не «поймал». Автор порта готов понемножку менять статус с альфы на бету, если в течении месяца-двух не вылезет критических ошибок. Тогда можно будет подумать об отправке пакетов в репозитории дистрибутивов, например.

    Bonus #1. А там правда Wine под капотом?


    Отчасти :) Из Wine были вытащены некоторые кусочки трансляции WinApi в нативный API Linux (конвертация кодировок, например; к слову, этот кусок недавно попробовали переписать на iconv, но выяснилось, что код из Wine делает то же самое в 4 раза быстрее). Со временем обращения к этим функциям, разбросанные по всему коду far2l, можно будет понемножку заменять на прямые вызовы нативных функций. А пока и эта конструкция работает очень даже быстро (самое медленное, на чём пробовали запускать — raspberry pi, полет нормальный) и вполне надежно.

    Bonus #2. Хватит фигней страдать, консоль учите, дурни!


    За время работы над far2l (тестировщиком, а ещё иногда нехитрые патчи шлю) я узнал о линуксовой консоли больше, чем за всю жизнь до этого :) А ещё понемногу осваиваю си, на которых кодить со времен института не приходилось — повода не было (заодно, кстати, перешел на «ты» с git). Так что ждите скоро статью «как веб-макака си на опенсорсе учила»!

    Bonus #3. А нескучные обои имеются?


    Несколько лет назад я бы скорее посмеялся над этим вопросом. Но да, если целый день смотреть в синий цвет, становится как-то не по себе (и прямо чувствуешь, как отрастает борода и свитер с оленями). Поэтому в итоге сделал себе раскраску в духе Monokai, ну и выложил для всех, конечно. У нас opensource ведь.



    Bonus #4. А на маке взлетит?


    Взлетит. Половину тикетов в багтрекер с маков пишут. И да, на BSD работает тоже.

    Комментарии 505

      +12
      Это ж праздник какой-то!
      А куда донат заносить?
        +7
        Если запускать графическую версию — да, все, ВООБЩЕ ВСЕ, прямо как в родном. Если консольную — есть небольшие ограничения, сходу могу вспомнить только одно, Ctrl+цифры не работают (и, кажется, даже для этой проблемы есть workaround). Но если консольная запущена внутри графической (ну то есть запустили графический far2l, в нем сделали ssh example.com, а там уже запустили консольный far2l), все ограничения отменяются благодаря чудесным собственным расширениям терминала.

        А, да, если Alt+русская_буква не срабатывает, надо собрать с wx3.1 — это в апстриме баг, он исправлен уже, но в дистрибутивах старые wx'ы.
          0
          Но если консольная запущена внутри графической (ну то есть запустили графический far2l, в нем сделали ssh example.com, а там уже запустили консольный far2l), все ограничения отменяются благодаря чудесным собственным расширениям терминала.


          Вот бы еще оригинальный FAR из под Windows это умел. Если через SSH, то какая разница какова операционная система у внешнего (первого) FAR…
        +3
        > А куда донат заносить?

        Автор пока по непонятной причине от этой темы уклоняется, можно выразить желание поддержать его донейтом вот здесь github.com/elfmz/far2l/issues/215

          +1
          Он справедливо уклоняется, тема скользкая, так как неизбежно найдутся желающие громко упрекать в коммерции и вымогательствах. лично я закину и буду закидывать, но никого ни к чему не призываю
            0
            А куда закидывать-то? Он реквизиты не постит же.

            Ну и вообще это странная история — отказываться от донейтов, потому что хейтеры что-то плохое скажут. Они в любом случае плохое скажут, они хейтеры, нельзя строить свою политику на попытке угодить им.
              0
              я вроде видел только что страницу где предлагается донатить,
              на ГитХабе же есть стандартные переводы денех, не? — вроде то что я и видел, вникнуть не было возможности,… собственно вот, вытащил из истории посещений:
              liberapay.com/on/github/elfmz
              это что?

              «странная история — отказываться от донейтов, потому что хейтеры что-то плохое скажут»
              у меня нет точного ответа, но проблема что хейтерам может кто-то поверить, лично я, если бы был в схожей ситуации, думаю что не стал бы инициировать переводы в свою пользу, но может и стал бы, хотя бы чисто из любопытства. а так — несущественная эта тема, и исход конечно несущественнен, — что на донатах еще никто не разбогател это 100%.
              Я сам сильно думаю, как сделать так чтобы качественный опенсорс окупался создателям, и ничего дельного не придумал.
              А вот! )) у меня была идея вставлять рекламу бегущей текстовой строкой в ФАР )) думаю что стоит попробовать этот метод, нo что из него могло бы выйти — не знаю
                0
                > liberapay.com/on/github/elfmz

                Я эту штуку первый раз вижу, и выглядит она немного странно. Собирать людям, их не спрашивая? Ну такое. А это точно не скам вообще?

                > на донатах еще не кто не разбогател это 100%

                Во-первых, разбогатели (но это в основном это всякие хайповые однодневные истории, которые скорее плохой пример). Во-вторых, вести оперативную деятельность на донейты вполне реально, вон, на Горпроекты Каца и Варламова посмотрите :)) Тут недавно пост выходил про лучшую онлайн карту ДТП страны, это при их поддержке проект, между прочим.

                А на хейтеров никогда ориентироваться нельзя, им угодить невозможно, зато можно потратить зря кучу времени и сил, демотивироваться, забросить дело. Представьте, что я этот пост писал бы не для тех, кто far2l пользуется, а пытаясь угодить тем, кто его ненавидит? Ну вот этим вот «ненужно, есть mc» и «учите консоль лучше, дурачки». Нет, я на таких даже внимание не обращаю, а когда приходят — отшучиваюсь.

                Обращать внимание, наоборот, надо на добросовестных сторонников, которые тестят, код шлют, или вот денег задонейтить готовы. Все три варианта помощи по-своему хороши, глупо отрицать один из них только потому что кто-то нос воротить будет: желающие нос воротить и так всегда найдутся, обращать внимания на таких и вовсе не надо.
                  0
                  Ну вот этим вот «ненужно, есть mc»

                  Почему ненужно, нужно — будет больше альтернатив емаксу.


                  Представьте, что я этот пост писал бы не для тех, кто far2l пользуется, а пытаясь угодить тем, кто его ненавидит?

                  Надо будет затестить far2l дома. В виндовсе мне всегда нравился ТоталКомандер, но его не везде можно использовать и иногда приходилось довольствоваться ФАРом.

                    0
                    Надо будет затестить far2l дома. В виндовсе мне всегда нравился ТоталКомандер, но его не везде можно использовать и иногда приходилось довольствоваться ФАРом.


                    Чей-то непонятно.

                    Если вы только собираетесь попробовать far2l, то под Linux вы ФАР еще не гоняли.

                    Ну а если под Винду то везде, где можно ФАР, то там и Тотал можно тоже.

                      0
                      Ну а если под Винду то везде, где можно ФАР, то там и Тотал можно тоже.

                      Имелось в виду спорность использования условно-бесплатного Тотала в коммерческих целях.

                        0
                        Имелось в виду спорность использования условно-бесплатного Тотала в коммерческих целях.


                        А вы FAR лицензировали с указанием «xUSSR регистрация»?
                          0
                          А вы FAR лицензировали с указанием «xUSSR регистрация»?

                          Понятия не имею, просто ФАР есть в списке разрешённых программ, а Тотал надо каждый месяц обосновывать безопасникам.

                            +2
                            Так сейчас вроде BSD.
                              +3
                              far2l под GPL: там кусочки кода Wine есть, а Wine-то под GPL.
              +1
              Причины вполне понятные. Во-первых крайне маловероятно что донаты составят конкуренцию зарплате, во-вторых мне больше нравится писать код как мне нравится, сорри за каламбур.
              Так что чтоб не было обидок с одной стороны (я задонатил 100500 шекелей а они так и не сподобились переписать все нафиг сделать маленькую нужную мне фичу, и психологического давления с другой — донаты я не принимаю. И надеюсь это не потребуется:)
              Потому что есть работа, есть семья с малым ребенком, стройка дома и хобби. Надо разделять:)
                0
                Ой, ну это совсем поверхностное понимание донатов. Есть разные модели, и фичи-за-бабло — далеко не единственная. Меня вот вполне устраивает модель «есть elfmz, и он пилит far2l так, как ему кажется правильным», даже если мои PR не всегда принимаются (я понимаю пределы собственной компетенции), и я готов поддержать эту модель пятихаточкой, не требуя ничего взамен. Ну, как открытку Торвальдсу послать. Просто для мотивации и выражения благодарности.

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

                (я, если что, работаю в частном фонде, живущем на донейты, и тему эту знаю, можно сказать, профессионально)
            0
            Не смог найти инструкции по запуску far2l под консолью ubuntu server v20.04.

            В ссылке выше страница с описанием бага 276 с массой текста.
            github.com/elfmz/far2l/issues/276

            Понимаю, что far2l в стадии alpha, но чтоб пользователи дали feedback, нужны простые инструкции по запуску.
            Ссылка на 10 страниц переписки от 2017 как-то демотивирует.
              +4
              Программировать всегда интереснее, чем писать инструкции! Этот пост как раз и написан для тех, кому не хочется читать 10 страниц переписки от 2017 года, зато ок задать вопросы в каментах :)

              Сам запуск делается так:
              far2l --tty

              Если же вы о том, как собрать far2l без wx, то это делается так: вместо
              cmake -DUSEWX=yes -DCMAKE_BUILD_TYPE=Release ..
              пишете
              cmake -DUSEWX=no -DCMAKE_BUILD_TYPE=Release ..

              Впрочем, это вовсе не обязательно: версия, собранная с wx, прекрасно запустится в консоли. Просто потащит кучу ненужного на сервере мусора в зависимости.

              PS: Ещё обращаю внимание на флажок --ee, который решает проблему необходимости двойного нажатия ESC в консоли (тем же способом, что и mc). И, кстати, --help работает тоже.
                0
                Ну вот я собрал по инструкции, и far у меня в хомяке лежит. Как его теперь установить? Там же какие-то симлинки прописываются, файлы по разным каталогам раскладываются.
                  0

                  Зачем? Это ж не винда. Можно просто bash alias для бинарника сделать.


                  А можно скопировать результат установки в /opt, сделать симлинк на бинарник и положить в одну из директорий из PATH, какую именно — зависит от дистрибутива.

                    0
                    Винда — не винда, а вот такие штуки проявляются. github.com/elfmz/far2l/issues/819#issuecomment-713836085
                      0

                      Действительно, в установочном скрипте имеются строчки:


                        ln -sf ../../bin/far2l "$pkgdir"/usr/lib/far2l/far2l_askpass
                        ln -sf ../../bin/far2l "$pkgdir"/usr/lib/far2l/far2l_sudoapp

                      Но больше никаких особенностей нет.

                        0
                        Что это за скрипт, не подскажете? Как его запустить?
                          0
                          установка по make install, но я бы лучше cpack запустил и получил готовую .deb'ку, и её уже ставил через dpkg. ну это если у вас debian-based, конечно
              +9
              Нет, ну чего только люди не придумают, лишь бы я так и не полюбил MC!
              Лет несколько назад снова прямо очень захотелось Far для Linux, и — о чудо — читаю в новостях, свершилось. Однако новость оказалась датирована первым апреля.
              Но есть всё-таки справедливость, правое дело торжествует героическими стараниями великолепных elfmz и unxed, многих лет и процветания им и иже с ними.

              если целый день смотреть в синий цвет, становится как-то не по себе
              (и прямо чувствуешь, как отрастает борода и свитер с оленями)
              Это с непривычки, зато потом теплее.
              А от нескушных обоев и до альтернативных шорткатов недалече.
              Да и плагин для написания плагинов (на Python!) ускользнёт же в исконный Far. Ну и пусть его.
              Зато теперь и в консоли, и в putty, (и в wsl), и всё синхронизируется.
              Впору задуматься о вытеснении всех прочих способов сетевого взаимодействия Far'ом и о водворении Far в Dom0.

              Интересно, в dd-wrt Far уже впилили?

              Спасибо, плюсики завтра с меня, а нескушные новости с Вас.
                +1
                > Интересно, в dd-wrt Far уже впилили?

                Разговоры такие разговариваются. Попытка переписать конвертацию кодировок с кода Wine на iconv была как раз обусловлена желанием сократить размер бинарника для всяких роутеров. Впрочем, iconv тупит, а бинарники уменьшить другим[и] способом[ами] получилось.

                Но про готовую сборку под *wrt я пока не слышал. Может, вы будете первым, кто это сделает? ;-)

                > Зато теперь и в консоли, и в putty, (и в wsl), и всё синхронизируется.

                У меня сейчас есть ещё один pet project — попытка добавить far2l extensions в консольный текстовый редактор на Scintilla Turbo. Чтоб там тоже буфер обмена заработал. Сама идея этого Turbo настолько красивая (притащить Scintilla, на котором[-ой?] notepad++ написан, в консоль, да ещё с интерфейсом на Turbo Vision, офигеть, и это работает!) настолько красива, что я просто не смог удержаться :)) Ну и заодно демка получится, как добавлять буфер обмена в фаровском исполнении в консольные аппы.
                  +1
                  сократить размер бинарника для всяких роутеров
                  Там наверно можно без Colorer'а обойтись (хотя нет), а это заметный кусок.

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

                  Ещё, кстати, есть подходящая платформа — в медиаплеерах на реалтековских чипах — moServices, годная прослойка между реалтековскими блобами, позволяющая актуализировать незаслуженно заброшенное производителем железо, так там мэйнтейнера прямо вот FarVoice зовут, что намекает.
                  И питон там ко двору пришёлся бы. MC ЕМНИП там уже есть, а вот приверженцев Far'а пока нечем было заманить.

                  в консоль, да ещё с интерфейсом на Turbo Vision, офигеть, и это работает!
                  Turbo Vision это который «Error 200»? Да, Вы определённо знаете толк! Пилите, пока энтузиазм не утёк.
                  Это что же получается, скоро буфером Far'а можно будет пользоваться для передачи по галактике векторной графики из Corel'а под Windows в Inkscape на Linux и для прочего 3D/VR? Ооо!..
                  Far, кстати, обладает удобным способом работы с ресурсами ftp из командной строки (в стандартном FTP, не NetBox, кажется его можно было включить на версии 3).

                  Всяческих успехов проекту и прокачки скилов персоналиям.
                    0
                    > Error 200

                    200 это из Турбо Паскаля, а заопенсорсили Borland сишную Turbo Vision, о ней и речь тут (ну, о форке, в который добавили юникод и кроссплатформенность). Но да, вектор вы поняли правильно, это те самые милые сердцу ностальгические досовские TUI.

                    farftp в far2l тоже собрать можно, просто по умолчанию не включён :)
                    0
                    сократить размер бинарника для всяких роутеров

                    Что-то мне кажется, что проще ставить полноценный far[2l] на клиент, а на роутер заходить как на сетевой диск.

                      0
                      Так уже вовсю можно, да! При этом вы разок попробуйте удаленный far2l внутри графического, вот чтоб клипборд был и все хоткеи. Ощущения весьма захватывающие, на это подсаживаешься))
                  +21
                  А чем это лучше МС?
                    +15
                    Отличный вопрос! К сожалению, чтобы грамотно на него ответить, нужно в совершенстве знать все функции и mc и far'а. А я ни одного человека, способного на это, не встречал пока: либо человек хорошо знает mc, либо far.

                    Поэтому лучше смотреть не с ракурса «лучше-хуже», а с ракурса «а вот альтернатива какая есть, глядите!». Как GNOME/KDE, кока и пепси.

                    Из «фишек», которых в mc не хватает лично мне, могу навскидку назвать, например, такие вот две: буфер обмена через ssh и корректная работа с русскими буквами в OEM .zip архивах.

                    По последнему пункту тикет в mc я запульнул, разумеется. Они отвечают, что все проблемы в апстриме, unzip/p7zip. Но unzip/p7zip в дистрибутивах не починят примерно никогда, судя по всему. Мэйнтейнер p7zip из Дебиана пока не ответил на мой email, по крайней мере.
                      0
                      На счёт альтернативы согласен, нужна. Фар когда-то был крут. Но вот про перечисленные «фишки» не очень понял. Можете пояснить? Что это за «буфер обмена по ssh»? Проблем с русскими буквами в МС не замечал, возможно в каких-то версиях есть. Да, в МСВС-3 точно есть в виндовских файлах, но не всех, но тамошнему МС лет 15. :)
                        +10
                        Про зипы в тикете, который в mc отправлен, всё написано, с примерами. Это действительно апстримовые баги, при этом пользователю от этого не легче.

                        Про буфер обмена очень интересно, с удовольствием расскажу. Как это работает в mc? Он стучится в локальные иксы и спрашивает «а дайте мне буфер, пожалуйста!». Естественно, на сервере, куда вы по ssh зашли, и где никаких локальных иксов нет, такое из коробки работать не будет.

                        В far2l механика другая. 1) Запускаем графический far2l (мы же на десктопе иксовом работаем, раз нам клипбоард понадобился, верно?) 2) В нём делаем «ssh example.com» 3) На example.com запускаем местный far2l 4) Удаленный текстовой far2l и локальный графический far2l договариваются между собой о доступе к буферу обмена и клавиатуре с помощью хитрых специальных escape-последовательностей 5) в итоге вы пользуетесь удаленным far2l так же, как будто бы он работал на вашей родной системе в графическом режиме — с клипбордом и расширенной поддержкой сочетаний клавиш.

                        Разумеется, если запустить удаленный far2l под любой другой терминалкой (кроме встроенной в графический far2l), он тоже будет работать. Но без клипборда, и часть хоткеев (Ctrl+цифры и может ещё что-то, сходу не соображу) отвалятся.
                          0
                          Ясно, спасибо. Плюсануть не могу, сори.
                            0
                            не думали на счет просмотрщика картинок в консоли, ковырясь сейчас с этим, хотелось бы чтобы по F3 на картинке оно показывало в терминалах vt340, как это сделана в утилите lsix через SIXEL-ы en.wikipedia.org/wiki/Sixel
                              +3
                              Вы будете очень смеяться, когда я покажу workaround, которым пользуюсь, чтобы быстро понять, что на картинке, когда сижу в far2l на другом конце глобуса:

                              chafa -c 16 --color-space=din99d --dither=ordered -w 9 --symbols all --fill all !.! && read -n1 -r -p ""

                              Если эту строчку прописать в «кастомные ассоциации», фар заменит !.! на имя файла. Ну и чафу надо саму поставить, конечно.

                              А вообще, конечно, такая штука обсуждалась. Там есть два принципиально возможных подхода к такому: 1) через sixel-графику, вот тикет 2) через развитие идеи far2l terminal extensions, чтобы удаленный фар мог так слать графическую картинку локальному.

                              Думаю, вряд ли elfmz станет заниматься этим до стадии беты, но в перспективе отчего ж не сделать, конечно :) Или же сами можете попробовать — если уж я со своим «знанием» сей смог патчи писать для far2l, то и вы сможете!
                                +4
                                я для mc пилю по мере возможности.
                                  0
                                  Ого, в mc будет смотрелка картинок? Здорово!
                                    0
                                    кто знает, скорее нет чем да.
                                    вероятность есть.
                              0
                              Как это работает в mc? Он стучится в локальные иксы и спрашивает «а дайте мне буфер, пожалуйста!». Естественно, на сервере, куда вы по ssh зашли, и где никаких локальных иксов нет, такое из коробки работать не будет.

                              ничего не понял, а зачем ему вообще буфер обмена? нажал shift, повёл мышкой — выделилось, нажал shift + средняя кнопка, вставилось.

                                +2
                                Попробуйте так выделить-вставить строчку длиннее ширины окна терминала. Или кусок текста длиннее высоты окна терминала.
                                  +1
                                  не, это не то, там у вас длинные строки криво скопирутся и т.д. я в свое время поддержку общего клипборда запиивал через xclip.
                                  вот мой файл настроек mc.keymap

                                  Заголовок спойлера
                                  [main]
                                  ChangePanel = tab; ctrl-i
                                  Help = f1
                                  UserMenu = f2
                                  View = f3
                                  # ViewFile =
                                  Edit = f4
                                  # EditForceInternal =
                                  Copy = f5
                                  Move = f6
                                  MakeDir = f7
                                  Delete = f8; shift-delete
                                  Menu = f9
                                  Quit = f10
                                  MenuLastSelected = f19
                                  QuitQuiet = f20
                                  Find = alt-question; alt-f7; ctrl-backtab
                                  CdQuick = alt-c
                                  HotList = ctrl-backslash
                                  Reread = ctrl-r
                                  DirSize = ctrl-space
                                  Suspend = ctrl-alt-z
                                  Swap = ctrl-u
                                  History = alt-h
                                  # PanelListing =
                                  # SetupListingFormat =
                                  ShowHidden = alt-dot
                                  SplitVertHoriz = alt-comma
                                  SplitEqual = alt-equal
                                  SplitMore = ctrl-shift-right
                                  SplitLess = ctrl-shift-left
                                  Shell = ctrl-o
                                  PutCurrentPath = alt-a
                                  PutOtherPath = alt-shift-a
                                  PutCurrentSelected = alt-enter; ctrl-enter
                                  PutCurrentFullSelected = ctrl-shift-enter
                                  ViewFiltered = alt-exclamation
                                  Select = kpplus; ctrl-kpplus
                                  Unselect = kpminus
                                  SelectExt = ctrl-kpasterisk
                                  SelectInvert = kpasterisk
                                  ScreenList = alt-prime; alt-f11
                                  # OptionsLayout =
                                  # OptionsAppearance =
                                  # OptionsPanel =
                                  # OptionsConfirm =
                                  # OptionsDisplayBits =
                                  # OptionsVfs =
                                  # LearnKeys =
                                  # SaveSetup =
                                  # EditExtensionsFile =
                                  # EditFileHighlightFile =
                                  # Filter =
                                  # ConnectFish =
                                  # ConnectFtp =
                                  # ConnectSmb =
                                  # Undelete =
                                  EditorViewerHistory = alt-f12
                                  ExtendedKeyMap = ctrl-alt-x
                                  
                                  [main:xmap]
                                  ChangeMode = c
                                  ChangeOwn = o
                                  ChangeAttributes = e
                                  CompareDirs = d
                                  CompareFiles = ctrl-d
                                  HotListAdd = h
                                  LinkSymbolicEdit = ctrl-s
                                  Link = l
                                  LinkSymbolic = s
                                  LinkSymbolicRelative = v
                                  PanelInfo = i
                                  PanelQuickView = q
                                  ExternalPanelize = exclamation
                                  VfsList = a
                                  Jobs = j
                                  PutCurrentPath = p
                                  PutOtherPath = ctrl-p
                                  PutCurrentTagged = t
                                  PutOtherTagged = ctrl-t
                                  PutCurrentLink = r
                                  PutOtherLink = ctrl-r
                                  
                                  [panel]
                                  CycleListingFormat = alt-t
                                  Search = ctrl-s; alt-s
                                  Mark = insert; ctrl-t
                                  MarkUp = shift-up
                                  MarkDown = shift-down
                                  MarkLeft = shift-left
                                  MarkRight = shift-right
                                  Down = down
                                  Up = up
                                  Left = left
                                  Right = right
                                  PageUp = pgup
                                  PageDown = pgdn
                                  Enter = enter
                                  PanelOtherCd = alt-o
                                  PanelOtherCdLink = alt-l
                                  ViewRaw = f13
                                  EditNew = f14
                                  CopySingle = f15
                                  MoveSingle = f16
                                  DeleteSingle = f18
                                  SelectExt = ctrl-kpasterisk
                                  Select = alt-plus
                                  Unselect = alt-minus
                                  SelectInvert = alt-asterisk
                                  CdChild = ctrl-pgdn
                                  CdParent = ctrl-pgup
                                  # CdParentSmart =
                                  # Panelize =
                                  History = alt-shift-h
                                  HistoryNext = alt-u
                                  HistoryPrev = alt-y
                                  BottomOnScreen = alt-j
                                  MiddleOnScreen = alt-r
                                  TopOnScreen = alt-g
                                  PanelOtherSync = alt-i
                                  SelectCodepage = alt-e
                                  Top = alt-lt; home; a1
                                  Bottom = alt-gt; end; c1
                                  # Sort =
                                  # SortPrev =
                                  # SortNext =
                                  # SortReverse =
                                  SortByName = ctrl-f3
                                  # SortByExt =
                                  # SortBySize =
                                  SortByMTime = ctrl-f5
                                  # ScrollLeft =
                                  # ScrollRight =
                                  
                                  [dialog]
                                  Ok = enter
                                  Cancel = f10; esc; ctrl-g
                                  Up = left; up
                                  #Left = left; up
                                  Down = right; down
                                  #Right = right; down
                                  Help = f1
                                  Suspend = ctrl-alt-z
                                  Refresh = ctrl-l
                                  ScreenList = alt-prime; alt-f11
                                  ScreenNext = alt-rbrace
                                  ScreenPrev = alt-lbrace
                                  
                                  [menu]
                                  Help = f1
                                  Left = left; ctrl-b
                                  Right = right; ctrl-f
                                  Up = up; ctrl-p
                                  Down = down; ctrl-n
                                  Home = home; alt-lt; ctr-a
                                  End = end; alt-gt ctrl-e
                                  Enter = enter
                                  Quit = F10; esc; ctrl-g
                                  
                                  [input]
                                  Home = alt-lt; home; a1
                                  End = alt-gt; end; c1
                                  Left = left; alt-left; ctrl-b
                                  Right = right; alt-right; ctrl-f
                                  WordLeft = ctrl-left; alt-b
                                  WordRight = ctrl-right; alt-f
                                  Backspace = backspace; ctrl-h
                                  Delete = delete; ctrl-d
                                  DeleteToWordBegin = alt-backspace
                                  DeleteToWordEnd = alt-d
                                  # Mark =
                                  Remove = esc; ctrl-w
                                  Cut = ctrl-x
                                  Store = ctrl-c
                                  Paste = ctrl-v
                                  Yank = ctrl-y
                                  DeleteToEnd = esc; ctrl-k
                                  HistoryPrev = ctrl-e; alt-p; ctrl-down
                                  HistoryNext = ctrl-p; alt-n; ctrl-up
                                  History = alt-h
                                  Complete = shift-tab
                                  Clear = ctrl-backspace; ctrl-a
                                  MarkLeft = shift-left
                                  MarkRight = shift-right
                                  MarkToWordBegin = ctrl-shift-left
                                  MarkToWordEnd = ctrl-shift-right
                                  MarkToHome = shift-home
                                  MarkToEnd = shift-end
                                  
                                  [listbox]
                                  Up = up; ctrl-p
                                  Down = down; ctrl-n
                                  Top = home; alt-lt; a1
                                  Bottom = end; alt-gt; c1
                                  PageUp = pgup; alt-v
                                  PageDown = pgdn
                                  Delete = delete; d
                                  Clear = shift-delete; shift-d
                                  View = f3
                                  Edit = f4
                                  Enter = enter
                                  
                                  [radio]
                                  Up = up; ctrl-p
                                  Down = down; ctrl-n
                                  Top = home; alt-lt; a1
                                  Bottom = end; alt-gt; c1
                                  Select = space
                                  
                                  [tree]
                                  Help = f1
                                  Reread = f2; ctrl-r
                                  Forget = f3
                                  ToggleNavigation = f4
                                  Copy = f5
                                  Move = f6
                                  Up = up; ctrl-p
                                  Down = down; ctrl-n
                                  Left = left
                                  Right = right
                                  Top = home; alt-lt; a1
                                  Bottom = end; alt-gt; c1
                                  PageUp = pgup
                                  PageDown = pgdn
                                  Enter = enter
                                  Search = ctrl-s; alt-s
                                  Delete = f8; delete
                                  
                                  [help]
                                  Help = f1
                                  Index = f2; c
                                  Back = f3; left; l
                                  Quit = f10; esc
                                  Up = up; ctrl-p
                                  Down = down; ctrl-n
                                  PageDown = f; space; pgdn
                                  PageUp = b; pgup; alt-v; backspace
                                  HalfPageDown = d
                                  HalfPageUp = u
                                  Top = home; ctrl-home; ctrl-pgup; a1; alt-lt; g
                                  Bottom = end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
                                  Enter = right; enter
                                  LinkNext = tab
                                  LinkPrev = alt-tab
                                  NodeNext = n
                                  NodePrev = p
                                  
                                  [chattr]
                                  Up = up; left; ctrl-p
                                  Down = down; right; ctrl-n
                                  Top = home; alt-lt; a1
                                  Bottom = end; alt-gt; c1
                                  PageUp = pgup
                                  PageDown = pgdn
                                  Mark = t; shift-t
                                  MarkAndDown = insert
                                  
                                  [editor]
                                  Store = ctrl-insert; ctrl-c
                                  Paste = shift-insert; ctrl-v
                                  Cut = shift-delete; ctrl-x
                                  Up = up
                                  Down = down
                                  Left = left
                                  Right = right
                                  WordLeft = ctrl-left
                                  WordRight = ctrl-right
                                  Enter = enter
                                  Return = shift-enter; ctrl-enter; ctrl-shift-enter
                                  BackSpace = backspace
                                  Delete = delete; ctrl-d
                                  PageUp = pgup
                                  PageDown = pgdn
                                  Home = home
                                  End = end
                                  Tab = tab
                                  Undo = ctrl-u; ctrl-z
                                  Redo = alt-r; ctrl-alt-z
                                  Top = ctrl-home; alt-lt
                                  Bottom = ctrl-end; alt-gt
                                  ScrollUp = ctrl-up
                                  ScrollDown = ctrl-down
                                  TopOnScreen = ctrl-pgup
                                  BottomOnScreen = ctrl-pgdn
                                  DeleteToWordBegin = alt-backspace
                                  DeleteToWordEnd = alt-d
                                  DeleteLine = ctrl-y
                                  DeleteToEnd = ctrl-k
                                  # DeleteToHome =
                                  # ParagraphUp =
                                  # ParagraphDown =
                                  Save = f2
                                  # EditFile =
                                  EditNew = ctrl-n
                                  SaveAs = f12; ctrl-f2
                                  # Close =
                                  History = alt-f12
                                  Mark = f3
                                  Copy = f5
                                  Move = f6
                                  Remove = f8; shift-delete
                                  # MarkLine =
                                  # MarkWord =
                                  MarkAll = ctrl-a
                                  # Unmark =
                                  Search = f7
                                  SearchContinue = f17
                                  BlockShiftLeft = shift-tab
                                  #BlockShiftRight =
                                  MarkPageUp = shift-pgup
                                  MarkPageDown = shift-pgdn
                                  MarkLeft = shift-left
                                  MarkRight = shift-right
                                  MarkToWordBegin = ctrl-shift-left
                                  MarkToWordEnd = ctrl-shift-right
                                  MarkUp = shift-up
                                  MarkDown = shift-down
                                  MarkToHome = shift-home
                                  MarkToEnd = shift-end
                                  MarkToFileBegin = ctrl-shift-home
                                  MarkToFileEnd = ctrl-shift-end
                                  MarkToPageBegin  = ctrl-shift-pgup
                                  MarkToPageEnd = ctrl-shift-pgdn
                                  MarkScrollUp = ctrl-shift-up
                                  MarkScrollDown = ctrl-shift-down
                                  # MarkParagraphUp =
                                  # MarkParagraphDown =
                                  MarkColumnPageUp = alt-pgup
                                  MarkColumnPageDown = alt-pgdn
                                  MarkColumnLeft = alt-left
                                  MarkColumnRight = alt-right
                                  MarkColumnUp = alt-up
                                  MarkColumnDown = alt-down
                                  # MarkColumnScrollUp =
                                  # MarkColumnScrollDown =
                                  # MarkColumnParagraphUp =
                                  # MarkColumnParagraphDown =
                                  BlockSave = f16
                                  MarkColumn = f13
                                  Replace = f4
                                  ReplaceContinue = f14
                                  Complete = ctrl-shift-tab
                                  InsertFile = f15
                                  Quit = f10; esc
                                  InsertOverwrite = insert
                                  Help = f1
                                  #Date =
                                  Refresh = ctrl-l
                                  Goto = alt-l
                                  Sort = alt-t
                                  Mail = alt-m
                                  ParagraphFormat = alt-p
                                  MatchBracket = alt-b
                                  ExternalCommand = alt-u
                                  UserMenu = f11
                                  Menu = f9
                                  Bookmark = alt-k
                                  BookmarkFlush = alt-o
                                  BookmarkNext = alt-j
                                  BookmarkPrev = alt-i
                                  Shell = ctrl-o
                                  InsertLiteral = ctrl-q
                                  # MacroStartRecord =
                                  # MacroStopRecord =
                                  MacroStartStopRecord = ctrl-r
                                  # MacroDelete =
                                  ShowNumbers = alt-n
                                  ShowTabTws = alt-underline
                                  SyntaxOnOff = ctrl-s
                                  # SyntaxChoose =
                                  # ShowMargin =
                                  Find = alt-enter
                                  FilePrev = alt-minus
                                  FileNext = alt-plus
                                  # RepeatStartStopRecord =
                                  SelectCodepage = alt-e
                                  # Options =
                                  # OptionsSaveMode =
                                  # SpellCheck =
                                  SpellCheckCurrentWord = ctrl-p
                                  # SpellCheckSelectLang =
                                  # LearnKeys =
                                  # WindowMove =
                                  # WindowResize =
                                  # WindowFullscreen =
                                  WindowList = alt-f11
                                  WindowNext = ctrl-tab
                                  #WindowPrev =
                                  # ExtendedKeyMap =
                                  
                                  [viewer]
                                  Help = f1
                                  WrapMode = f2
                                  Quit = f3; f10; q; esc
                                  HexMode = f4
                                  Goto = f5
                                  Search = f7
                                  SearchForward = slash
                                  SearchBackward = question
                                  SearchContinue = f17; n
                                  SearchForwardContinue = ctrl-s
                                  SearchBackwardContinue = ctrl-r
                                  SearchOppositeContinue = shift-n
                                  MagicMode = f8
                                  NroffMode = f9
                                  Home = ctrl-a
                                  End = ctrl-e
                                  Left = h; left
                                  Right = l; right
                                  LeftQuick = ctrl-left
                                  RightQuick = ctrl-right
                                  Up = k; y; insert; up; ctrl-p
                                  Down = j; e; delete; down; enter; ctrl-n
                                  PageDown = f; space; pgdn
                                  PageUp = b; pgup; alt-v; backspace
                                  HalfPageDown = d
                                  HalfPageUp = u
                                  Top = home; ctrl-home; ctrl-pgup; a1; alt-lt; g
                                  Bottom = end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
                                  BookmarkGoto = m
                                  Bookmark = r
                                  FileNext = ctrl-f
                                  FilePrev = ctrl-b
                                  SelectCodepage = alt-e
                                  Shell = ctrl-o
                                  Ruler = alt-r
                                  History = alt-shift-e
                                  
                                  [viewer:hex]
                                  Help = f1
                                  HexEditMode = f2
                                  Quit = f3; f10; q; esc
                                  HexMode = f4
                                  Goto = f5
                                  Save = f6
                                  Search = f7
                                  SearchForward = slash
                                  SearchBackward = question
                                  SearchContinue = f17; n
                                  SearchForwardContinue = ctrl-s
                                  SearchBackwardContinue = ctrl-r
                                  SearchOppositeContinue = shift-n
                                  MagicMode = f8
                                  NroffMode = f9
                                  ToggleNavigation = tab
                                  Home = ctrl-a; home
                                  End = ctrl-e; end
                                  Left = b; left
                                  Right = f; right
                                  Up = k; y; up
                                  Down = j; delete; down
                                  PageDown = pgdn
                                  PageUp = pgup
                                  Top = ctrl-home; ctrl-pgup; a1; alt-lt; g
                                  Bottom = ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
                                  History = alt-shift-e
                                  
                                  [diffviewer]
                                  ShowSymbols = alt-s; s
                                  ShowNumbers = alt-n; l
                                  SplitFull = f
                                  SplitEqual = equal
                                  SplitMore = gt
                                  SplitLess = lt
                                  Tab2 = 2
                                  Tab3 = 3
                                  Tab4 = 4
                                  Tab8 = 8
                                  Swap = ctrl-u
                                  Redo = ctrl-r
                                  HunkNext = n; enter; space
                                  HunkPrev = p; backspace
                                  Goto = g; shift-g
                                  Save = f2
                                  Edit = f4
                                  EditOther = f14
                                  Merge = f5
                                  MergeOther = f15
                                  Search = f7
                                  SearchContinue = f17
                                  Options = f9
                                  Top = ctrl-home
                                  Bottom = ctrl-end
                                  Down = down
                                  Up = up
                                  LeftQuick = ctrl-left
                                  RightQuick = ctrl-right
                                  Left = left
                                  Right = right
                                  PageDown = pgdn
                                  PageUp = pgup
                                  Home = home
                                  End = end
                                  Help = f1
                                  Quit = f10; q; shift-q; esc
                                  Shell = ctrl-o
                                  SelectCodepage = alt-e
                                  

                                    0
                                    обратите внимание на
                                    Cut = ctrl-x
                                    Store = ctrl-c
                                    Paste = ctrl-v

                                    в сочетании с настройкой в ini

                                    clipboard_store=xclip -i -selection clipboard
                                    clipboard_paste=xclip -o -selection clipboard

                                    дает доступ к клипборду X-ов
                                  0
                                  Для работы с иксами в mc по ssh рекомендую посмотреть в сторону ssh X11 forwarding. Возможно, понадобится утилита xclip
                                  +10
                                  Фар и был крут, и есть. Помимо хорошей собственной функциональности и богатой экосистемы плагинов, у него есть ещё одно неочевидное поначалу достоинство — его писали люди со вкусом. Всё реализовано аккуратно, обстоятельно и с очень хорошим балансом по шкале «гик-домохозяйка» (если не считать синих панелей как таковых, которые не всем нравятся). Смотришь на аналоги: вроде бы и то, да не то. Это я сейчас имею в виду оригинал; надеюсь, что порт в этом отношении не сильно проигрывает.
                                    +5
                                    Вы очень точно сформулировали именно то, что меня в значительной степени побуждает и пользоваться именно фаром, и развивать его. Спасибо!

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

                                    PS: Как перекрасить синие панели в модный серый, в статье тоже есть. И, да, проблема синего на консоли на самом деле многих парит.
                                      0
                                      а многих и не парит, меня например, и синий нравится…
                                        0
                                        Синий же лампово очень. Как он может парить? Long live far2l!
                                    0
                                    >буфер обмена через ssh
                                    это можно сделать через DISPLAY и xclip
                                    нужно чтобы дисплэй указывала на хост с которого подключение происходит а xclip нужно просто поставить.
                                      +1
                                      Ага. Так тоже можно, да. Я про эту фишку узнал уже после того, как в far2l удаленный клипборд завезли.

                                      А ещё есть OSC52, который не поддерживается почти нигде, кроме Microsoft'овского терминала, и при этом он выглядит как идеалогически верный способ реализации того же самого. Но ни гномовская терминалка, ни кдешная в него пока не умеют. Тем более они этого не умели, когда far2l делать начинали.
                                        –1
                                        Так в итоге то, кроме как «еще одна альтернатива» смысл существования фара под линукс?
                                        Лет 20 назад используя виндовз фаром пользовался с удовольствием. В линуксе не придумалось зачем он.
                                        Разве что тем кто на двух табуретах одновременно сидит — один привычный инструмент.
                                          +3
                                          Разумеется, смысл существования фара под линукс — оправдываться его разработчикам перед странными людьми в интернетах!
                                            0
                                            Так себе затея если честно, перед кем то оправдываться.
                                            +1
                                            Разве что тем кто на двух табуретах одновременно сидит — один привычный инструмент
                                            молодец, истина где-то рядом :) все люди с которыми я знаком, сидят на как минимум двух табуретках, а других (однотабуреточных) людей я как-то и ни разу не видел. Это наверное должны быть разработчики седцевины RedHat, и то не уверен.
                                            далее, как другой пример, все люди делятся на емаксовцев и на вимовцев, (не будем рассматривать набиральщиков текста одним пальцем в Ворде) но не два в одном на одинаково хорошем уровне (не будем рассматриватьтех кто может набрать несколько слов в обоих редакторах, и которым более того и не нужно).
                                            И как вы думаете, почему так сложилось? :)
                                              0
                                              другой пример, все люди делятся на емаксовцев и на вимовцев

                                              и на тех, кто не использует ни первый, ни второй. :)

                                                0
                                                Они пока не используют первый или второй.
                                                  0
                                                  alexws54tk, JPEGEC, sumanai, and all :)
                                                  «не будем рассматривать набиральщиков текста одним пальцем в Ворде»
                                                  «не будем рассматриватьтех кто может набрать несколько слов в обоих редакторах, и которым более того и не нужно»

                                                    +2
                                                    Все люди делятся на геев и на лесбиянок, (не будем рассматривать гетеросексуалов и тем кому это не нужно)?
                                                    +2
                                                    Ой, блин, вот эта попытка поставить знак равенства между миром *никсов и вимом с емаксами (самыми контринтуитивными штуками для работы с текстом, которые только можно себе вообразить) это одна из главных вещей, из-за которых люди никсов боятся (и правильно). Простите, но для меня это звучит как «вы чем предпочитаете бутерброды делать, отвёрткой или пассатижами?». Отвертка и пассатижи — отличные штуки, и всё же я предпочитаю обычный нож. Извините. Спасибо.

                                                    Почему ни в одной коммерческой компании не используют vim или emacs в качестве IDE? Потому что это не удобные способы работы с текстом, дающие низкую продуктивность, и имеющие неадекватно высокий порог входа. Их придумали, когда нужно было пропихнуть какой-то приемлемый юзер экспириенс работы с текстами через телетайпы, в которых половины кнопок не было. В 2020 году в подобных ограничениях нет никакого смысла: нужно просто сделать в никсах нормальную консоль с поддержкой ВСЕХ кнопок. Что автор far2l и сделал, собственно.
                                                      +1
                                                      Почему ни в одной коммерческой компании не используют vim или emacs в качестве IDE

                                                      Потому что они не IDE, а текстовые редакторы?

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

                                                      Потому что это супер удобные способы работы с текстом, дающие высочайшую продуктивность, но имеющие неадекватно высокий порог входа. FTFY.
                                                      И да, как я уже написал выше, они — не IDE, они очень крутые текстовые редакторы, из которых некоторые пытаются сделать IDE.
                                                        0
                                                        А кто пользуется этими замечательными редакторами для работы с текстом в коммерции? Писатели? Журналисты? Если там такая высокая продуктивность, то любого копирайтера должны с порога отправлять на курсы по этим штукам, чтоб денег больше приносил конторе за ту же единицу времени.

                                                        Но никто не отправляет ¯\_(ツ)_/¯
                                                          0
                                                          Писатели и журналисты потомучто тоже работают с текстом, но иначе чем программисты. Программисты тоже не пишут тексты в M$ Word ;)
                                                            0
                                                            Ну я пользуюсь Vim в коммерческой компании (на работе), так что ваше изначальное утверждение про «ни в одной коммерческой компании не используют» уже не верно. И некоторые коллеги мои в текущей компании и бывшие коллеги в других компаниях тоже пользуются. Их не много, но они есть. Я же не редактирую 100% текста в IDE, весь plain text, что не в IDE (которых, кстати, несколько) — в Vim. Ну и в тех IDE, которые это нормально умеют, у меня включен Vim mode.

                                                            Вы вот вроде пишете разумные вещи в соседних ветках, предлагаете не напрыгивать на mc, его пользователей и авторов, а сами, не разобравшись в том, почему люди любят Vim и Emacs, напрыгиваете на них.
                                                              +1
                                                              Окей, разработчики вима с емаксами молодцы тоже! :-)
                                                          0
                                                          Почему ни в одной коммерческой компании не используют vim или emacs в качестве IDE?

                                                          Эм… Ну, во-первых, правильно тут отметили, что это не IDE. А во-вторых, я лично знаю людей, которые в vim кодят. И делают это не для себя...

                                                      +1
                                                      Это наверное должны быть разработчики седцевины RedHat, и то не уверен.

                                                      Нет, вполне обычные люди. Без виндовс жизнь вполне себе существует.
                                                      И как вы думаете, почему так сложилось? :)

                                                      Затрудняюсь сказать, считаю оба продукта лютым трешем, хоть и уважаю героизм авторов.
                                                0
                                                Мэйнтейнер p7zip из Дебиана пока не ответил на мой email, по крайней мере.

                                                так надо баг открывать, а не личные письма слать

                                                +1
                                                Как минимум mc лог обновляет только по End. far умеет читать обновленный лог и показывать на экране (подобно tail -f) Мне например в mc не хватает возможности просмотра лога работающего в реалтайме приложения без дополнительных телодвижений.
                                                Нужно потестить что-ли у себя
                                                  –3
                                                  это давно сделано, но не совсем так.

                                                  запустите скрипт который будет писать данные в файл
                                                  например такой
                                                  #!/bin/sh
                                                  for i in `seq 1 200`; do
                                                      sleep 2;
                                                      echo $i;
                                                  done;

                                                  в mc нажмите F3 и если будете жать End то оно будет работать как tail -f, сделано это именно так потому что были определенные резоны.
                                                    –1
                                                    «определенные резоны» видимо не убедили, поверьте, автообновление широко и полно обсуждалось, но «определенные резоны» были сильнее.
                                                +11
                                                я немного знаю примерно всё про mc и far и пользуюсь обоими фм каждый день.
                                                mc не умеет архивы с паролями, mc не умеет плагины, mc не умеет samba (та что вкомпилина устарела примерно на 20 лет, пробовал обновлять там это оооочень это непросто)
                                                  +1
                                                  Да, согласен. Запароленные архивы и самба — с этим сложность. Плагины — не знаю. В Фаре не особо нужны были и в МС про них не вспоминал. Кому-то наверное нужны.
                                                    0
                                                    мне нужны, через плагины много чего допиливать можно.
                                                      +1
                                                      Вот как раз 7z тянем статически вкомпиленную ради запароленных архивов, например. В libarchive, которая могла бы быть альтернативой, и есть в зависимостях, их поддержку добавили только в совсем свежих версиях, которых нет в дистрибутивах.

                                                      А вообще, как показывает практика, сделать хороший именно менеджер архивов для *nix — не такая тривиальная задача, как кажется на первый взгляд. Дьявол в деталях, мы эти детали улучшаем понемножку одну за другой :)
                                                        0
                                                        а как tar.gz обрабатываете? ведь tar.gz не хранит списка файлов и не отдает его и если нужно распаковать несколько файлов приходится распаковывать всё и это боль если такой файл большой.
                                                          0
                                                          Не вникал глубоко, релевантный код живет здесь, гляньте!
                                                      0
                                                      О, а раз вы знаете все про mc, скажите, как его научить нормальным сочетаниям клавиш, к которым так привык в far? В частности, выделение блоков в редакторе по Shift-стрелочки, вертикальные блоки, сочетания Ctrl-PgUp/PgDown для перескакивания начало/в конец файла, затем всякие странные сочетания типа Esc-M для поиска файла, которые в FAR через привычный Alt-F7. В остальном тоже работаю с обоими и уже привык. Но однозначно перейду на far2l.
                                                        +2
                                                        настройка сочетаний производится в файле
                                                        ~/.config/mc/mc.keymap

                                                        $ mc -F
                                                        выдаст актуальные пути конф. файлов.

                                                        поиском по этой теме найдите мои настройки Xterm и файла mc.keymap

                                                        кроме того необходимо «обучить» сочетания всяких ctrl-shift-pgdn и т.д. в файле ini
                                                        я нужные esc-последовательности узнаю запуская cat и нажимая их потом переношу в ini.
                                                        Пользуюсь Xterm и если нужно научить посылать сочетания то делаю это в файле настроек Xterm.

                                                        вот кусок моего ini файла для понимания
                                                        [terminal:xterm]
                                                        ctrl-f9=\\e[20\;5
                                                        ctrl f1=\\e[11\;5
                                                        ctrl f2=\\e[12\;5
                                                        ctrl f3=\\e[13\;5
                                                        ctrl f4=\\e[14\;5
                                                        ctrl alt right=\\e\\e[C
                                                        ctrl alt left=\\e\\e[D
                                                        ctrl alt up=\\e\\e[A
                                                        ctrl alt down=\\e\\e[B
                                                        alt right=\\e\\eOC
                                                        alt left=\\e\\eOD
                                                        alt up=\\e\\eOA
                                                        alt down=\\e\\eOB
                                                        alt end=\\e\\e[4~
                                                        alt home=\\e\\e[1~
                                                        alt pgup=\\e\\e[5~
                                                        alt pgdn=\\e\\e[6~
                                                        ctrl right=\\e[C
                                                        ctrl left=\\e[D
                                                        ctrl up=\\e[A
                                                        ctrl down=\\e[B
                                                        ctrl home=\\e[1\;5H
                                                        ctrl end=\\e[1\;5F
                                                        ctrl pgup=\\e[[5\;5~
                                                        ctrl pgdn=\\e[[6\;5~
                                                        alt end=\\e\\e[4~
                                                        alt home=\\e\\e[1~
                                                        alt pgup=\\e\\e[5~
                                                        alt pgdn=\\e\\e[6~
                                                        alt f7=\\e\\e[18~
                                                        alt 1=\\e1
                                                        alt 2=\\e2
                                                        alt 3=\\e3
                                                        alt 4=\\e4
                                                        alt 5=\\e5
                                                        
                                                        f16=\\e[29~
                                                        f17=\\e[18\;2~
                                                        f18=\\e[32~
                                                        f19=\\e[18\;3~
                                                        
                                                        alt-f1=\\e[1\;3P
                                                        
                                                        complete=\\e[Z
                                                        
                                                        #backtab=\\e[Z
                                                        
                                                        alt shift right=\\e[1\;4C
                                                        alt shift left=\\e[1\;4D
                                                        ctrl-shift-left=\\e[[1\;6D
                                                        ctrl-shift-right=\\e[1\;6C
                                                        #ctrl-shift-home
                                                        #ctrl-shift-end
                                                        
                                                        alt-f12=\\e[24\;3~
                                                        alt-f11=\\e[23\;3~
                                                        
                                                        alt-f7=\\e[18\;3~
                                                        
                                                        shift-delete=\\e[3\;2~
                                                        
                                                        shift-tab=\\e[Z
                                                        
                                                        ctrl-backspace=^h
                                                        
                                                        ctrl-tab=\\e[z
                                                        
                                                        ctrl-shift-tab=\\e[~Z
                                                        
                                                        
                                                        ctrl-shift-home=\\e[1\;6H
                                                        ctrl-shift-end=\\e[1\;6F
                                                        
                                                        
                                                        
                                                        ctrl-kpasterisk=\\e[7\;OR~
                                                        ctrl-kpplus=\\e[7\;Ol~
                                                        
                                                        
                                                      +5
                                                      Моя попытка посравнивать mc и far (именно far, а не far4l):

                                                      — Аккуратность интерфейса. При нажатии на ctrl, alt или shift подписи на плашках, соответствующих кнопкам Fx меняются, как-то все сразу понятнее.
                                                      — Встроенный редактор, интегрированный с буфером обмена. mc может запускать mcedit, а в нем с буфером обмена шорткаты зачем-то через F3..F6
                                                      — Клавиатурные шорткаты. Например, ctrl+alt+insert поместит в буфер обмена, не знаю, есть ли такое в mc. Ctrl+L с инфой о месте на диске. Был еще какой-то, вставляющий через пробел названия всех помеченных файлов в командную строку.
                                                      — Ну и вообще при переключении mc — far и обратно куча шорткатов меняется. Посчитать размер директории, поиск файлов на панели… Открыть на соседней панели ту же директорию — в far достаточно alt+F1 (или F2) и выбрать там тот же диск, в мс… не помню вот :).
                                                      — работа с ftp и scp через NetBox. в mc на scp зайти — хинты предлают писать команду cd /#sh:. Хм, я вроде в gui файл менеджере, а мне предлагают через командную строку работать
                                                      — Хинты в mc тоже интересная вещь. Вообще, есть мнение про UI, что если в нем есть какие-то подсказки, то что-то не так с самим UI. Вот я, допустим, нуб в линуксе, запустил mc, а он пишет: Hint: Want your plain shell? Press C-o, and get back to MC with C-o again. Вот как мне догадаться, что «С» — это control?
                                                        +2
                                                        — Аккуратность интерфейса. При нажатии на ctrl, alt или shift подписи на плашках, соответствующих кнопкам Fx меняются, как-то все сразу понятнее.

                                                        Это проблема запущенного в терминале приложения, far2lc тоже никогда не сможет реагировать на нажатый и отпущенный ctrl или alt. Это невозможно.


                                                        — Встроенный редактор, интегрированный с буфером обмена. mc может запускать mcedit, а в нем с буфером обмена шорткаты зачем-то через F3..F6

                                                        У меня по ctrl-c, ctrl-v копирование/вставка, настройки выкладывал в этой ветке.

                                                          –2
                                                          Это невозможно.

                                                          Это не ответ.

                                                            0

                                                            Это невозможно по причинам принципа работы консоли. Она не посылает esc- последовательностей если вы просто нажмете ctrl, понимаете о чем я?

                                                              +2
                                                              Так да, разработчики фара годами ныли, что в *никс мол ограниченные терминалки, которые не позволят бла бла бла всю мощщ фара бла бла бла. А потом пришел elfmz и сделал порт, где фар сам себе терминалка.

                                                              Насколько получится через это вытащить на качественно новый уровень саму концепцию TUI в *никс? Время покажет :) Пользоваться этим прикольно, по крайней мере))
                                                                +2

                                                                Это — повод поправить принципы работы консоли, чтобы посылала (с сохранением обратной совместимости, разумеется). Хорошо что хоть кто-то этим наконец-то занялся, пусть и в форме (пока?) нестандартного расширения.

                                                                  +3
                                                                  С такими штуками всегда проблема курицы и яйца, про это всем известный Джоел Спольски писал ещё. Зачем мне добавлять в мою терминалку новую фичу, которую не использует ни одна аппа? Зачем мне добавлять в мою аппу новую фичу, которая не поддерживается ни одним терминалом?

                                                                  far2l — идеальная площадка для разрыва этого порочного круга, потому что он и терминалка и аппа одновременно :)
                                                              +2
                                                              Для подсказок по нажатию Alt/Ctrl/Shift как раз в far2l и используются экстеншны терминальные в том числе. Там приходят события KeyUp/KeyDown даже на отдельное нажатие модификаторов Alt/Ctrl/Shift. То есть да, в стандартных терминалках такое не сделать, но нам очень хотелось, поэтому в far2l такая продвинутая терминалка встроенная теперь.
                                                                0

                                                                Вообще это первое что я проверил в far2lc и конечно нажатие ctrl оно не отслеживает. Возможно если пользоваться специально написанным терминалом, но это немного другое.

                                                                  0
                                                                  Ну мы это в соседней ветке обсуждали, да, это будет работать только из-под VTE графического фара.
                                                              0
                                                              Хм, я вроде в gui файл менеджере

                                                              Уточнение: в TUI файл менеджере.

                                                              0
                                                              Примерно всем, MC — жалкая тень Far'а, subset.
                                                              Лишь бы клава не глючила так как в MC ну или была эмуляция, что-то типа Sublime'овской. И редактор в целом обновить бы чуть.
                                                                +2
                                                                Я целенаправленно избегал формулировок, обесценивающих труд людей, создавших и продолжающих развивать mc. Они тоже молодцы, конкуренция TUI файл менеджеров обязательно пойдет на пользу обоим.
                                                                  0

                                                                  Вы примерно не правы.

                                                                    0
                                                                    Более того, мы регулярно подсматриваем в исходники mc, если там что-то сделано лучше, чем у нас. Вот --ee оттуда срисовали, например :)
                                                                      0

                                                                      --ее?

                                                                        0
                                                                        Ну да, это опция far2l, которая включает обработку ESC «как-в-mc», чтоб два раза нажимать не надо было.
                                                                          +2

                                                                          Как раз хотел спросить как дабл esc отрубить.

                                                                      +1
                                                                      Я примерно прав, так как использую оба, и больше 10 лет (считать лень, может и 20, не помню когда фар вышел. Если что — Volkov'а ещё на одной дискетке запускал. Если вы вообще в курсе что это.)

                                                                      PS: Заметьте — я говорю о программах, а вы вот лепите отсебятину о незнакомом человеке.
                                                                        +3
                                                                        скорее всего вы отвечали мне, я правильно понимаю?
                                                                        пример «слепленной отсебятины» о незнакомом человеке приведете? (это что из подсознания про себя написали)
                                                                        Вы волков навигатором померяться решили? да я начинал с БК и ЕСок и я повидал много файловых менеджеров, в том числе и VC. Только вот не пойму причем тут это. В написали свое оценочное суждение относительно того что какой-то из ФМ хуже ничем не обосновав, когда я указал на вашу неправоту вы решили включить эйджизм и до кучи обижульку.
                                                                          +2
                                                                          Слушайте, ну настроение бывает плохое у людей, не ведитесь :)

                                                                          Al_Azif тут человек реально в mc коммитит, пользу open source сообществу приносит, не надо на него прыгать, пожалуйста!
                                                                            +1
                                                                            >>пример «слепленной отсебятины» о незнакомом человеке приведете
                                                                            >>>>Вы примерно не правы

                                                                            >>когда я указал на вашу неправоту
                                                                            Вы наверное подумали, что ваше суждение — не оценочное, а высеченная в камне Истина, да? Смею вас огорчить…

                                                                            PS: я ни на кого не напрыгиваю, по возможностям Far обставляет mc кратно. Если это у кого-то вызывает боль — нуштош, truth hurts. Никаких призывов к аргументации я не увидел, увидел вот это заявление, чуть выше.
                                                                            mc существует лет 20, в виде дерева различной параллельности форков, и за 20 лет прогресс его печален. (извините, если это тоже кого-то вдруг обидит)
                                                                              0
                                                                              Когда конкуренции нет, прогресс всегда печален (см. политическая ситуация в РФ). Не было второго хорошего двухпанельника, работающего через ssh. А теперь есть. Будет конкуренция, будет и развитие. Ну и отлично же :)
                                                                                0

                                                                                Просто прочитал ваше сообщение с недоумением, лень даже переспрашивать про то в чем превосходит.
                                                                                "Вы примерно неправы" это не суждение о человеке а о его высказывании.

                                                                        +3
                                                                        С ходу — эскалация привелегий, чего в mc жутко не хватает, и о чём долго просят. Из за чего обычно бывает «sudo mc».
                                                                          0
                                                                          по F2 настройте sudo mcedit текущий файл
                                                                            +4
                                                                            Очень часто бывает, что файл уже открыт, отредактирован, и надо сохранить, и тут — опаньки, прав не хватает.
                                                                            Ну и повышение прав также нужно для разных операций с фалами, не только редактирования.
                                                                              0
                                                                              да самого бесит ) делаю
                                                                              ctrl-a (пометить всё),
                                                                              ctrl-c (copy)
                                                                              esc, sudo mcedit файл
                                                                              ctrl-a (пометить всё),
                                                                              ctrl-v (paste)
                                                                                –1
                                                                                А вот с этого момента прошу поподробней! :)

                                                                                Как в mcedit выделить всё и отправить в системный буфер обмена? Я только мышкой умею, но это ограничивается одним экраном.

                                                                                P.S. Создал mc.keymap по примеру выше. Но это же встроенный буфер, и если вызвать sudo mcedit, то он не подхватывается.
                                                                                  +2
                                                                                  я уже писал выше, нужно поставить xclip, и нужно настроить mc.keymap поиском по теме найдите мои настройки.
                                                                                  Хочу отдельную стать написать но все никак не доходят руки.
                                                                          +2

                                                                          Тем, что когда пользуешься двумя системами сразу, неудобно переключаться между этими инструментами. Привыкаешь к шорткатам Far-а, а тут на тебе — MC с совершенно другими шорткатами и интерфейсом. Можно, конечно, MC подтюнить, но одинаковости все равно не добиться.

                                                                            0
                                                                            я почти все сочетания клавиш сделал такими же как в far
                                                                            +2
                                                                            ну вот у меня в NetBox 25 каталогов, в каждом от одной до сорока ссылок на серваки
                                                                            mc так умеет?
                                                                            так ото ж…
                                                                              0
                                                                              Я не знаю, но мне этого никогда и не нужно было. И врядли понадобится :)
                                                                              Собственно, я интересовался чем Фар лучше МС, чтобы понять преимущества.
                                                                                0
                                                                                фломастеры у всех разные. мне нужно в закладках большое число SFTP ссылок, и желательно это все структурировать. по этому параметру для меня Far лучше.
                                                                                ну и редактор в нем такой, что я только в нем и работал с исходниками 20 лет, и только последние года три перелез на VSCode, IDEA и PyCharm
                                                                                  0
                                                                                  Кстати, о редакторах кода, мы тут ща ещё и Scintilla в консоль притащим))
                                                                                    +2
                                                                                    пробовал, но под виндузой оно мне как-то не зашло, потому и остался на Far Editor + Colorer
                                                                                    кроме того, ни один из внешних редакторов не работает нормально, если файл надо отредактировать прямо на серваке. тут Far тоже вне конкуренции.
                                                                                      0
                                                                                      > если файл надо отредактировать прямо на серваке

                                                                                      Ха, с far2l я частенько прямо на серваке и пишу что-то :)) Вот эта вот фишка с terminal extensions (все хоткеи, клипборд) + удобный редактор с автодополнением и подсветкой.
                                                                                        0
                                                                                        удобный редактор с автодополнением и подсветкой.

                                                                                        Автодополнение — это хорошо, но. подскажите, что с отображением нумерации строк в встроенном far2l? Это (отсутствие нумерации) всегда меня бесило в ФАР.

                                                                                    +1
                                                                                    падая от засыпания, все же выразажаю восторг :)
                                                                                    Scintilla это очень хорошо, без шуток.
                                                                                    То на что в ФарТиме презрительно плюются и крутят пальцем у виска :)
                                                                                    То что не в состоянии оценить люди которые здесь и сейчас в комментах (не вижу их реакции если честно), оценят миллионы по всему миру, так же гарантированно, как восходит солнце.
                                                                                    Не знать что такое Scintilla не грех конечно, но жизн; заставит узнать если ребята это дело качественно прикрутят :)
                                                                                      0
                                                                                      О, классно, что есть поддержка у замута этого :) Там оно уже запускается и работает в консоли, и даже уже на уровне, который может быть полезен в повседневном использовании.

                                                                                      Мне интересно туда именно клавиатуру и клипборд из far2l прикрутить, чтобы комфортабельность использования повысить. Ну и показать заодно, каким клёвым может быть UX TUI в *никсах, если расширения терминала far2l задействовать.

                                                                                      А там поглядим :)
                                                                                        0
                                                                                        Если вы эти соображения выскажете на английском (да хоть через гугл транслейт) автору этого замута, да хотя бы вот в этом тикете, это наверняка будет ему приятно и мотивирует продолжать работу! :-)
                                                                                          +1
                                                                                          Автор замута, кстати, впечатлился хабраэффектом!
                                                                                  +3
                                                                                  Я лично для себя отвечаю так:
                                                                                  Авторы mc изначально решили, что командер должен работать на любой системе, даже на тостере.
                                                                                  В результате они сильно ограничены в имплементации фич.
                                                                                  А мне не надо, чтобы оно работало на тостере. Мне надо, чтобы работало на моем достаточно стандартном компе, но чтоб все было удобно.
                                                                                  И вот эту задача проект решает на все сто.
                                                                                    0
                                                                                    Спасибо, доступно :)
                                                                                    +1
                                                                                    С точки зрения админа, видимо, дело привычки больше. А вот с точки зрения прогера-автоматизатора прям очень лучше. Фар с колорером до сих пор закрывает большую часть нужд по допиливанию существующего софта. Не все удобно делать на всяких навороченных ИДЕшках особенно когда все разбросано по разным серверам абы как.
                                                                                    0
                                                                                    запустил far2lc, потестировал, вышел.
                                                                                    запускаю второй раз и вижу
                                                                                    hlms:~$ far2lc
                                                                                    argv[0]='far2l' g_strFarModuleName='/usr/lib/far2l/far2l' translation_prefix=''
                                                                                    
                                                                                    
                                                                                    Some far2l-s lost in space-time nearby:
                                                                                     1: {/home/hlms} - Far 2.2 20201019-548e214 x64 hlms@ubuntu
                                                                                    Input instance index to revive or empty string to spawn new far2l
                                                                                    
                                                                                    
                                                                                    
                                                                                      +3
                                                                                      far2lc устаревшая история, она была нужна, когда для sftp нужно было gvfs-плагином пользоваться. Сейчас есть NetRocks и это всё не нужно. Можно просто «far2l --tty» запускать.

                                                                                      А насчёт сообщения, которое вы видите, это прикольная фишка, кстати. Допустим, вы зашли на сервер по ssh и гоняете там far2l. А потом у вас сдохла батарейка в ноуте, и сессия оборвалась. Так вот, при таком раскладе far2l не умирает, а остается ждать переподключения, и при последующем запуске попробует восстановиться.

                                                                                      Но эта фишка может быть не совместима с far2lc, я не тестировал это. Так что попробуйте запускать просто как «far2l --tty».
                                                                                        +3
                                                                                        far2lc устаревшая история, она была нужна, когда для sftp нужно было gvfs-плагином пользоваться. Сейчас есть NetRocks и это всё не нужно.

                                                                                        Буду этой фразой детей пугать. Идеально непонятная без контекста штука :)

                                                                                          +3
                                                                                          Раньше не было других возможностей по сети ходить, кроме плагина-интерфейса к gvfs. Чтобы он хорошо работал на безыксовых серверах, запускать фар нужно было через обертку, которую я и написал — far2lc. А сейчас появился сетевой плагин NetRocks, которому gvfs не нужен, и обертка, соответственно, перестала быть нужна тоже.

                                                                                          Это нормально — иногда забывать, что вещи, в которых ты варишься, не обязательно очевидны всем окружающим))
                                                                                          0
                                                                                          Допустим, вы зашли на сервер по ssh и гоняете там far2l. А потом у вас сдохла батарейка в ноуте, и сессия оборвалась.


                                                                                          Ну, замечу, что в случае когда нужна устойчивость сессии к обрыву — лушче вообще пользоваться screen'ом…
                                                                                            0
                                                                                            Ага, эта фича как раз и появилась тогда, когда выяснилось, что у far2l под screen проблемки. Сейчас far2l через screen работает, правда, экстеншны через него не пролезают, что обидно, так что фича осталась востребованной.
                                                                                              0

                                                                                              Посмотрите обязательно на tmux, он куда живее в плане экстеншенов и новых фич.

                                                                                        +5
                                                                                        Лучший файл-менеджер после ДОС Навигатора (199х год). Когда нужно чуть добавить удобства к командной строке.

                                                                                        Наконец то и на Линухе, ачивка!
                                                                                        0
                                                                                        ctrl+'+' не работает (

                                                                                        у меня Xterm настроен так чтобы esc последовательность генерировалась для ctrl+'+'
                                                                                        как этой последовательности научить far2lc?
                                                                                          0
                                                                                          Честно, не знаю. Могу предположить, что запил тикета в far2l и тэгание автора вот этого PR может помочь.
                                                                                            +2
                                                                                            лучшего эмул. терминала чем Xterm пока не удалось встретить, у меня он очень кастомизирован чтобы все комбинации в mc работали.

                                                                                            мой конфиг Xterm
                                                                                            xterm*decTerminalID: vt340
                                                                                            XTerm*foreground: green
                                                                                            XTerm*cursorColor: darkgreen
                                                                                            XTerm*background: black
                                                                                            XTerm*scrollBar: False
                                                                                            XTerm*saveLines: 1000
                                                                                            XTerm*metaSendsEscape: true
                                                                                            XTerm*selectToClipboard: true
                                                                                            XTerm.omitTranslation: fullscreen
                                                                                            XTerm*font1:	-xos4-terminus-medium-r-*-*-12-*-*-*-*-*-iso10646-1
                                                                                            XTerm*font2:	-xos4-terminus-medium-r-*-*-14-*-*-*-*-*-iso10646-1
                                                                                            XTerm*font3:	-xos4-terminus-medium-r-*-*-16-*-*-*-*-*-iso10646-1
                                                                                            XTerm*font4:	-xos4-terminus-medium-r-*-*-20-*-*-*-*-*-iso10646-1
                                                                                            XTerm*font5:	-xos4-terminus-medium-r-*-*-22-*-*-*-*-*-iso10646-1
                                                                                            XTerm*font6:	-xos4-terminus-medium-r-*-*-28-*-*-*-*-*-iso10646-1
                                                                                            XTerm*font: -xos4-terminus-medium-r-*-*-22-*-*-*-*-*-iso10646-1
                                                                                            XTerm*VT100.Translations: #override                               \n\
                                                                                                Ctrl        <Key>KP_Divide:   string(0x1b)  string("[7;OQ~")  \n\
                                                                                                Ctrl        <Key>KP_Multiply: string(0x1b)  string("[7;OR~")  \n\
                                                                                                Ctrl        <Key>KP_Subtract: string(0x1b)  string("[7;OS~")  \n\
                                                                                                Ctrl        <Key>KP_Add:      string(0x1b)  string("[7;Ol~")  \n\
                                                                                                Shift Ctrl  <Key>Tab:         string(0x1b)  string("[~Z")     \n\
                                                                                                Ctrl        <Key>Tab:         string(0x1b)  string("[z")      \n\
                                                                                            	Shift Ctrl	<Key>Prior:       string(0x1b)  string("[5;6~")   \n\
                                                                                            	Shift 	    <Key>Prior:       string(0x1b)  string("[5;2~")   \n\
                                                                                            	Shift Ctrl	<Key>Next:        string(0x1b)  string("[6;6~")   \n\
                                                                                            	Shift 	    <Key>Next:        string(0x1b)  string("[6;2~")   \n\
                                                                                            	Shift       <Key>Insert:      string(0x1b)  string("[2;2~")   \n\
                                                                                                <Btn1Down>:       select-start(CLIPBOARD)                     \n\
                                                                                                <Btn1Up>:         select-end(PRIMARY,CLIPBOARD,CUT_BUFFER0)   \n\
                                                                                                Shift <Btn1Down>: ignore()                                    \n\
                                                                                                Shift <Btn1Up>:   select-end(PRIMARY,CLIPBOARD,CUT_BUFFER0)   \n\
                                                                                                <Btn2Down>:       select-start(CLIPBOARD)                     \n\
                                                                                                <Btn2Up>:         select-end(PRIMARY,CLIPBOARD,CUT_BUFFER0)   \n\
                                                                                                Shift <Btn2Down>: select-start(CLIPBOARD)                     \n\
                                                                                                Shift <Btn2Up>:   select-end(PRIMARY,CLIPBOARD,CUT_BUFFER0)   \n\
                                                                                                <Btn3Down>:       ignore()                                    \n\
                                                                                                <Btn3Up>:         insert-selection(PRIMARY,CLIPBOARD)         \n\
                                                                                                Shift <Btn3Down>: ignore()                                    \n\
                                                                                                Shift <Btn3Up>:   insert-selection(PRIMARY,CLIPBOARD)         \n\
                                                                                                Meta   <Key>F9:   fullscreen()
                                                                                            
                                                                                          0
                                                                                          Убунтовский пакет с гитхаба github.com/unxed/far2l-deb
                                                                                          Установка:
                                                                                          sudo dpkg -i ПАКЕТ_ДЛЯ_ВАШЕГО_ДИСТРИБУТИВА.deb
                                                                                          sudo apt-get install -f
                                                                                          sudo dpkg -i ПАКЕТ_ДЛЯ_ВАШЕГО_ДИСТРИБУТИВА.deb


                                                                                          По итогам — установлен фар, поставлено 200 мегабайт зависимостей, удалён фар.
                                                                                          Где нормальный пакет для дебиана взять?
                                                                                            +1
                                                                                            far2l-deb делался преимущественно для себя, а у меня нет дефицита 200Мб ни на одной используемой системе.

                                                                                            Вам, скорее, подойдет вариант собрать .deb'ку самостоятельно. В CMAKE-скрипте с недавнего времени есть такая опция. Это прям вот в README прописано, раздел «Building DMG, DEB and TGZ packages».

                                                                                            Заодно, собирая вручную, вы сможете указать, нужен ли вам wx-бэкенд. Если собираете исключительно для консоли, это сэкономит вам изрядное количество места как раз на зависимостях.
                                                                                              0
                                                                                              Меня не 200 мегабайт беспокоят, мне не нравится то, что зависимости скачаны-установлены, а фар после этого сам удаляется. И зависимости потом остаются болтаться в системе.

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

                                                                                              К примеру, libpcre2-dev установлено, но конфиг всё равно ругается на то, что libpcre не видит.

                                                                                                0
                                                                                                Попробуйте libpcre3-dev. На последних Ubunt'ах именно так надо, возможно, в Дебиане тоже.
                                                                                                0
                                                                                                Ну и вообще:
                                                                                                [ 41%] Built target colorer_lib
                                                                                                Makefile:149: ошибка выполнения рецепта для цели «all»
                                                                                                make: *** [all] Ошибка 2

                                                                                                Всё же собирать самому проекты на стадии альфы, если не являешься программистом, очень сложно. Потому я и предпочитаю пакеты.
                                                                                                  0
                                                                                                  Возможно, на Дебиан встанет какой-нибудь из пакетов из ppa. Но это не гарантированно, разумеется. А у вас какой именно дебиан, кстати? В принципе, я могу для вас собрать, это не очень сложно.
                                                                                                    0
                                                                                                    debian 9 stretch

                                                                                                    Совет с libpcre3 прокатил, но сборка стала на 44% останавливаться.
                                                                                                      0
                                                                                                      А киньте лог сборки :)
                                                                                                        0
                                                                                                        А куда он логи сохраняет? Чтобы файлы взять, а не копировать всю простыню из терминала кусочками.

                                                                                                        pastebin.com/5xnmiYmK — последние проценты
                                                                                                          0
                                                                                                          Тут всё чисто. Видимо, у вас сборка идет с -j ЧТО-ТО_БОЛЬШЕ_ЕДИНИЦЫ, и ошибка там сильно выше по логу где-то. Если запустить make с аргументом -j 1, ошибка с большей вероятностью окажется в самом низу лога.

                                                                                                          Не сохраняет, вроде бы, никуда, если специально не попросить.
                                                                                                            0
                                                                                                            В инструкции по сборке j4 написано — так и запускаю.
                                                                                                            Запустил с j1 — пока что собирается.

                                                                                                              0
                                                                                                              pastebin.com/t10H5zDx — вылет с j1.
                                                                                                                0
                                                                                                                make[2]: *** Нет правила для сборки цели «/usr/lib/libfmt.a»


                                                                                                                Наверное, не хватает этого самого libfmt. libfmt-dev по убунтовски.
                                                                                                                  0
                                                                                                                  Если поставить libfmt3-dev, то даже конфигурация не проходит.
                                                                                                                  Заголовок спойлера
                                                                                                                  CMake Error at cmake/modules/Findfmt.cmake:15 (math):
                                                                                                                  math cannot parse the expression: " % 100": syntax error, unexpected
                                                                                                                  exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
                                                                                                                  Call Stack (most recent call first):
                                                                                                                  colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                  CMake Error at cmake/modules/Findfmt.cmake:16 (math):
                                                                                                                  math cannot parse the expression: "( - ) / 100": syntax error, unexpected
                                                                                                                  exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
                                                                                                                  Call Stack (most recent call first):
                                                                                                                  colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                  CMake Error at cmake/modules/Findfmt.cmake:15 (math):
                                                                                                                  math cannot parse the expression: " % 100": syntax error, unexpected
                                                                                                                  exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
                                                                                                                  Call Stack (most recent call first):
                                                                                                                  colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                  CMake Error at cmake/modules/Findfmt.cmake:16 (math):
                                                                                                                  math cannot parse the expression: "( - ) / 100": syntax error, unexpected
                                                                                                                  exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
                                                                                                                  Call Stack (most recent call first):
                                                                                                                  colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                  CMake Error at cmake/modules/Findfmt.cmake:15 (math):
                                                                                                                  math cannot parse the expression: " % 100": syntax error, unexpected
                                                                                                                  exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
                                                                                                                  Call Stack (most recent call first):
                                                                                                                  colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                  CMake Error at cmake/modules/Findfmt.cmake:16 (math):
                                                                                                                  math cannot parse the expression: "( - ) / 100": syntax error, unexpected
                                                                                                                  exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
                                                                                                                  Call Stack (most recent call first):
                                                                                                                  colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                  -- Found fmt: /usr/include (found version "..")


                                                                                                                    0
                                                                                                                    CMake Error at cmake/modules/Findfmt.cmake:16 (math):
                                                                                                                    math cannot parse the expression: "( — ) / 100": syntax error,


                                                                                                                    В строчке 16 ожидается выражение, похоже, переменные в нем не установлены. Нужно посмотреть, откуда они берутся.

                                                                                                                    Но для начала зачистить сборочную директорию. Все CMakeFiles и CMakeCache.txt.
                                                                                                                      0
                                                                                                                      Конфигурация с зачищеными файлами

                                                                                                                      Заголовок спойлера
                                                                                                                      # cmake -DUSEWX=no -DCMAKE_BUILD_TYPE=Release ..

                                                                                                                      -- The C compiler identification is GNU 6.3.0
                                                                                                                      -- The CXX compiler identification is GNU 6.3.0
                                                                                                                      -- Check for working C compiler: /usr/bin/cc
                                                                                                                      -- Check for working C compiler: /usr/bin/cc -- works
                                                                                                                      -- Detecting C compiler ABI info
                                                                                                                      -- Detecting C compiler ABI info - done
                                                                                                                      -- Detecting C compile features
                                                                                                                      -- Detecting C compile features - done
                                                                                                                      -- Check for working CXX compiler: /usr/bin/c++
                                                                                                                      -- Check for working CXX compiler: /usr/bin/c++ -- works
                                                                                                                      -- Detecting CXX compiler ABI info
                                                                                                                      -- Detecting CXX compiler ABI info - done
                                                                                                                      -- Detecting CXX compile features
                                                                                                                      -- Detecting CXX compile features - done
                                                                                                                      -- Build type: Release
                                                                                                                      -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29")
                                                                                                                      -- Checking for module 'openssl'
                                                                                                                      -- Found openssl, version 1.0.2u
                                                                                                                      -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so
                                                                                                                      -- OpenSSL found -> enjoy FTPS support in NetRocks
                                                                                                                      -- Found LibSSH: /usr/lib/x86_64-linux-gnu/libssh.so (Required is at least version "0.5.0")
                                                                                                                      -- libssh found -> enjoy SFTP support in NetRocks
                                                                                                                      -- libsmbclient found -> enjoy SMB support in NetRocks
                                                                                                                      -- Found LibNfs: /usr/lib/x86_64-linux-gnu/libnfs.so
                                                                                                                      -- libnfs found -> enjoy NFS support in NetRocks
                                                                                                                      -- Could NOT find LibNEON (missing: LIBNEON_LIBRARY LIBNEON_INCLUDE_DIR)
                                                                                                                      CMake Warning at CMakeLists.txt:133 (message):
                                                                                                                      libneon not found, NetRocks will not have WebDav protocol support.
                                                                                                                      Install libneon*-dev if you want WebDav protocol available in
                                                                                                                      NetRocks.

                                                                                                                      -- Found PCRE: /usr/lib/x86_64-linux-gnu/libpcre.so
                                                                                                                      -- Found LibArchive: /usr/lib/x86_64-linux-gnu/libarchive.so (found version "3.2.2")
                                                                                                                      -- Looking for pthread.h
                                                                                                                      -- Looking for pthread.h - found
                                                                                                                      -- Looking for pthread_create
                                                                                                                      -- Looking for pthread_create - not found
                                                                                                                      -- Looking for pthread_create in pthreads
                                                                                                                      -- Looking for pthread_create in pthreads - not found
                                                                                                                      -- Looking for pthread_create in pthread
                                                                                                                      -- Looking for pthread_create in pthread - found
                                                                                                                      -- Found Threads: TRUE
                                                                                                                      -- generating headers and languages
                                                                                                                      -- Found UCHARDET: /usr/lib/libuchardet.so
                                                                                                                      -- Build Colorer: 1.0.5
                                                                                                                      -- Found Spdlog: /usr/include
                                                                                                                      -- Found Xerces-C: /usr/lib/x86_64-linux-gnu/libxerces-c.so
                                                                                                                      CMake Error at cmake/modules/Findfmt.cmake:15 (math):
                                                                                                                      math cannot parse the expression: " % 100": syntax error, unexpected
                                                                                                                      exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
                                                                                                                      Call Stack (most recent call first):
                                                                                                                      colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                      CMake Error at cmake/modules/Findfmt.cmake:16 (math):
                                                                                                                      math cannot parse the expression: "( - ) / 100": syntax error, unexpected
                                                                                                                      exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
                                                                                                                      Call Stack (most recent call first):
                                                                                                                      colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                      CMake Error at cmake/modules/Findfmt.cmake:15 (math):
                                                                                                                      math cannot parse the expression: " % 100": syntax error, unexpected
                                                                                                                      exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
                                                                                                                      Call Stack (most recent call first):
                                                                                                                      colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                      CMake Error at cmake/modules/Findfmt.cmake:16 (math):
                                                                                                                      math cannot parse the expression: "( - ) / 100": syntax error, unexpected
                                                                                                                      exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
                                                                                                                      Call Stack (most recent call first):
                                                                                                                      colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                      CMake Error at cmake/modules/Findfmt.cmake:15 (math):
                                                                                                                      math cannot parse the expression: " % 100": syntax error, unexpected
                                                                                                                      exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
                                                                                                                      Call Stack (most recent call first):
                                                                                                                      colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                      CMake Error at cmake/modules/Findfmt.cmake:16 (math):
                                                                                                                      math cannot parse the expression: "( - ) / 100": syntax error, unexpected
                                                                                                                      exp_MINUS, expecting exp_OPENPARENT or exp_NUMBER (3)
                                                                                                                      Call Stack (most recent call first):
                                                                                                                      colorer/CMakeLists.txt:43 (FIND_PACKAGE)

                                                                                                                      -- Found fmt: /usr/include (found version "..")
                                                                                                                      -- Found Xerces-C: /usr/lib/x86_64-linux-gnu/libxerces-c.so
                                                                                                                      CMake Warning at CMakeLists.txt:231 (message):
                                                                                                                      Python plugin not enabled by default, use -DPYTHON=yes if you really
                                                                                                                      want it
                                                                                                                      -- Configuring incomplete, errors occurred!
                                                                                                                      See also "/home/aik/temp/far/far2l/build/CMakeFiles/CMakeOutput.log".
                                                                                                                      See also "/home/aik/temp/far/far2l/build/CMakeFiles/CMakeError.log".

                                                                                                                        0
                                                                                                                        CMake Error at cmake/modules/Findfmt.cmake:16 (math):


                                                                                                                        Ну, теперь нужно смотреть, что не так с этой строчкой. Почему вместо переменных пробелы. Возможно, libfmt нужен определённой версии. Или cmake.
                                                                                                                          +2
                                                                                                                          В инструкции ничего не сказано про это.
                                                                                                                          Потому и говорю, что надо программистом быть, чтобы с альфа-версиями играть.
                                                                                                                      0
                                                                                                                      Качаю образ дебиана, чтоб глянуть самому :)

                                                                                                                      А libspdlog-dev у вас стоит? Попробуйте убрать libfmt3-dev и поставить libspdlog-dev.

                                                                                                                      Вот полная строчка зависимостей сборки без wx (но это с последней убунты, на Дебиане 9 чутка отличаться может):
                                                                                                                      sudo apt-get install git cmake g++ gawk m4 libuchardet-dev libxerces-c-dev libspdlog-dev libpcre3-dev libarchive-dev libssl-dev libssh-dev libsmbclient-dev libnfs-dev

                                                                                                                      Если не поможет, отпишитесь, пожалуйста, в этом тикете (можно даже переоткрыть). Эта история с spdlog/libfmt к нам со свежим Colorer приехала, уже были проблемки с ней.
                                                                                                                        0
                                                                                                                        А libspdlog-dev у вас стоит? Попробуйте убрать libfmt3-dev и поставить libspdlog-dev.

                                                                                                                        Уже установлен пакет libspdlog-dev самой новой версии (1:0.11.0-2)

                                                                                                                        Без libfmt3-dev оно конфигурируется. Ругается на libneon и питона, ну да хрен с ними.
                                                                                                                        Заголовок спойлера
                                                                                                                        # cmake -DUSEWX=no -DCMAKE_BUILD_TYPE=Release ..

                                                                                                                        -- The C compiler identification is GNU 6.3.0
                                                                                                                        -- The CXX compiler identification is GNU 6.3.0
                                                                                                                        -- Check for working C compiler: /usr/bin/cc
                                                                                                                        -- Check for working C compiler: /usr/bin/cc -- works
                                                                                                                        -- Detecting C compiler ABI info
                                                                                                                        -- Detecting C compiler ABI info - done
                                                                                                                        -- Detecting C compile features
                                                                                                                        -- Detecting C compile features - done
                                                                                                                        -- Check for working CXX compiler: /usr/bin/c++
                                                                                                                        -- Check for working CXX compiler: /usr/bin/c++ -- works
                                                                                                                        -- Detecting CXX compiler ABI info
                                                                                                                        -- Detecting CXX compiler ABI info - done
                                                                                                                        -- Detecting CXX compile features
                                                                                                                        -- Detecting CXX compile features - done
                                                                                                                        -- Build type: Release
                                                                                                                        -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29")
                                                                                                                        -- Checking for module 'openssl'
                                                                                                                        -- Found openssl, version 1.0.2u
                                                                                                                        -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so
                                                                                                                        -- OpenSSL found -> enjoy FTPS support in NetRocks
                                                                                                                        -- Found LibSSH: /usr/lib/x86_64-linux-gnu/libssh.so (Required is at least version "0.5.0")
                                                                                                                        -- libssh found -> enjoy SFTP support in NetRocks
                                                                                                                        -- libsmbclient found -> enjoy SMB support in NetRocks
                                                                                                                        -- Found LibNfs: /usr/lib/x86_64-linux-gnu/libnfs.so
                                                                                                                        -- libnfs found -> enjoy NFS support in NetRocks
                                                                                                                        -- Could NOT find LibNEON (missing: LIBNEON_LIBRARY LIBNEON_INCLUDE_DIR)
                                                                                                                        CMake Warning at CMakeLists.txt:133 (message):
                                                                                                                        libneon not found, NetRocks will not have WebDav protocol support.
                                                                                                                        Install libneon*-dev if you want WebDav protocol available in
                                                                                                                        NetRocks.

                                                                                                                        -- Found PCRE: /usr/lib/x86_64-linux-gnu/libpcre.so
                                                                                                                        -- Found LibArchive: /usr/lib/x86_64-linux-gnu/libarchive.so (found version "3.2.2")
                                                                                                                        -- Looking for pthread.h
                                                                                                                        -- Looking for pthread.h - found
                                                                                                                        -- Looking for pthread_create
                                                                                                                        -- Looking for pthread_create - not found
                                                                                                                        -- Looking for pthread_create in pthreads
                                                                                                                        -- Looking for pthread_create in pthreads - not found
                                                                                                                        -- Looking for pthread_create in pthread
                                                                                                                        -- Looking for pthread_create in pthread - found
                                                                                                                        -- Found Threads: TRUE
                                                                                                                        -- generating headers and languages
                                                                                                                        -- Found UCHARDET: /usr/lib/libuchardet.so
                                                                                                                        -- Build Colorer: 1.0.5
                                                                                                                        -- Found Spdlog: /usr/include
                                                                                                                        -- Found Xerces-C: /usr/lib/x86_64-linux-gnu/libxerces-c.so
                                                                                                                        -- Could NOT find fmt (missing: fmt_INCLUDE_DIR fmt_LIBRARY)
                                                                                                                        -- Found Xerces-C: /usr/lib/x86_64-linux-gnu/libxerces-c.so
                                                                                                                        CMake Warning at CMakeLists.txt:231 (message):
                                                                                                                        Python plugin not enabled by default, use -DPYTHON=yes if you really
                                                                                                                        want it
                                                                                                                        -- Configuring done
                                                                                                                        -- Generating done
                                                                                                                        -- Build files have been written to: /home/aik/temp/far/far2l/build

                                                                                                                          0
                                                                                                                          Тогда, похоже, вы баг нашли, ура! Зарепортил: github.com/elfmz/far2l/issues/813

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

                                                                                                                                Для того эта кнопка и существует. Более того, там можно ещё и отвечать по почте...

                                                                                                                                  –1
                                                                                                                                  Ну мало ли чего там придумают. Вон тут ныли некоторое время назад, что в линуксе нет молодых разработчиков из-за того, что все по почте общаются, а в инстраграме и тиктаке не хотят разработку ядра обсуждать. :)
                                                                                                                                0
                                                                                                                                В общем, я не знаю, что именно помогло, но когда последний раз запустил сборку без libfmt3-dev — оно таки собралось.

                                                                                                                                cmake -DUSEWX=no -DCMAKE_BUILD_TYPE=Release…
                                                                                                                                make -j 1

                                                                                                                                [100%] Building CXX object NetRocks/CMakeFiles/NetRocks.dir/src/Protocol/SplitLocationSpecification.cpp.o
                                                                                                                                [100%] Building CXX object NetRocks/CMakeFiles/NetRocks.dir/src/Protocol/Protocol.cpp.o
                                                                                                                                [100%] Linking CXX shared module ../install/Plugins/NetRocks/plug/NetRocks.far-plug-wide
                                                                                                                                [100%] Built target NetRocks

                                                                                                                                image
                                                                                                                                  0
                                                                                                                                  Здорово! А отпишитесь в тикете там, чтоб человека не напрягать зря тогда! Можно ещё .deb'ку выложить, чтоб другим время сэкономить, если cpack тоже норм отработает у вас.

                                                                                                                                  UPD: ок, тикет я сам закрыл уже
                                                                                                                                    0
                                                                                                                                    not reproducing any more


                                                                                                                                    Отлично починили сборку ;)
                                                                                                                                      0
                                                                                                                                      ну а как дебажить, если не репродьюсится?))

                                                                                                                                      у меня вот дебиан9 нетинсталл вообще решил не устанавливаться в вирчуалбоксе, разбираться в причинах некогда пока, увы
                                                                                                                                        0
                                                                                                                                        У меня в debian 9 оно просто собралось.
                                                                                                                                        Правда libneon27-dev, libssh-dev и libssl-dev конфликтуют :(
                                                                                                                                        apt install libssh-dev
                                                                                                                                        Reading package lists... Done
                                                                                                                                        Building dependency tree       
                                                                                                                                        Reading state information... Done
                                                                                                                                        The following packages were automatically installed and are no longer required:
                                                                                                                                          comerr-dev krb5-multidev libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libneon27 libssl-doc
                                                                                                                                        Use 'apt autoremove' to remove them.
                                                                                                                                        The following additional packages will be installed:
                                                                                                                                          libssh-4 libssl1.0-dev
                                                                                                                                        Suggested packages:
                                                                                                                                          libssh-doc
                                                                                                                                        The following packages will be REMOVED:
                                                                                                                                          libneon27-dev libssl-dev
                                                                                                                                        The following NEW packages will be installed:
                                                                                                                                          libssh-4 libssh-dev libssl1.0-dev
                                                                                                                                        


                                                                                                                                        apt install libneon27-dev
                                                                                                                                        Reading package lists... Done
                                                                                                                                        Building dependency tree       
                                                                                                                                        Reading state information... Done
                                                                                                                                        The following package was automatically installed and is no longer required:
                                                                                                                                          libssh-4
                                                                                                                                        Use 'apt autoremove' to remove it.
                                                                                                                                        The following additional packages will be installed:
                                                                                                                                          libssl-dev
                                                                                                                                        The following packages will be REMOVED:
                                                                                                                                          libssh-dev libssl1.0-dev
                                                                                                                                        
                                                                                                                                          0
                                                                                                                                          libneon вообще странная. Она и в ubuntu 18.04 была сломана, емнип. Впрочем, с тех пор, как Яндекс сломал у себя вебдав, степень его востребованности заметно упала, имхо :)
                                                                                                                                            0
                                                                                                                                            Ну вы там определитесь, нужна она для сборки или нет ;) А то dll hell уже рядом.
                                                                                                                                              0
                                                                                                                                              А как мы можем за пользователя определиться, что ему нужно, а что нет? Нетрокс и без неё соберется, просто конкретно вебдава в нём не будет. Там все протоколы отдельными .so'шниками собираются.
                                                                                                                                                0

                                                                                                                                                Тем более, если это зависимости для сборки плагинов — зачем тянуть эти зависимости в основное приложение?

                                                                                                                                              0

                                                                                                                                              А что с вебдавом у Яндекса не так? Я пользуюсь им из-под винды из фара. Крайне редко, но позавчера работало. Проверил, еще работает.

                                                                                                                                                0
                                                                                                                                                Вот такое github.com/elfmz/far2l/issues/606
                                                                                                                                                Ну впрочем это только на конкретно вот этой тестовой картинке воспроизводится, а на других файлах нет. Странность
                                                                                                                                        0
                                                                                                                                        cpack отработал, но при попытке установить пакет он корёжит зависимости и кроме как удалением они не правятся. И вообще, нахрена бинарнику в зависимостях *-dev?
                                                                                                                                        Заголовок спойлера
                                                                                                                                        dpkg -i far2l_2.2.0-1_amd64.deb
                                                                                                                                        Выбор ранее не выбранного пакета far2l.
                                                                                                                                        (Чтение базы данных … на данный момент установлено 104982 файла и каталога.)
                                                                                                                                        Подготовка к распаковке far2l_2.2.0-1_amd64.deb …
                                                                                                                                        Распаковывается far2l (2.2.0) …
                                                                                                                                        dpkg: зависимости пакетов не позволяют настроить пакет far2l:
                                                                                                                                        far2l зависит от libssl-dev, однако:
                                                                                                                                        Пакет libssl-dev не установлен.
                                                                                                                                        far2l зависит от libneon27-dev, однако:
                                                                                                                                        Пакет libneon27-dev не установлен.

                                                                                                                                        dpkg: ошибка при обработке пакета far2l (--install):
                                                                                                                                        проблемы зависимостей — оставляем не настроенным
                                                                                                                                        При обработке следующих пакетов произошли ошибки:
                                                                                                                                        far2l
                                                                                                                                        root@banshee:/home/aik/temp/far/far2l/build# apt -f install
                                                                                                                                        Чтение списков пакетов… Готово
                                                                                                                                        Построение дерева зависимостей
                                                                                                                                        Чтение информации о состоянии… Готово
                                                                                                                                        Исправление зависимостей… Готово
                                                                                                                                        Следующие пакеты устанавливались автоматически и больше не требуются:
                                                                                                                                        libssh-4 zlib1g-dev
                                                                                                                                        Для их удаления используйте «apt autoremove».
                                                                                                                                        Пакеты, которые будут УДАЛЕНЫ:
                                                                                                                                        far2l libssh-dev libssl1.0-dev
                                                                                                                                        обновлено 0, установлено 0 новых пакетов, для удаления отмечено 3 пакетов, и 0 пакетов не обновлено.
                                                                                                                                        не установлено до конца или удалено 1 пакетов.
                                                                                                                                        После данной операции, объём занятого дискового пространства уменьшится на 31,2 MB.
                                                                                                                                        Хотите продолжить? [Д/н] n
                                                                                                                                        Аварийное завершение.


                                                                                                                                          0
                                                                                                                                          Эт надо на гитхабе спросить :)