Обычно я пишу статьи об развитии проекта far2l — порта знаменитого Far Manager под Linux, MacOS и BSD (а теперь ещё и Haiku) раз в год. Но иногда случается так, что объем новостей на статью набирается быстрее. Недавно произошло сразу несколько важных событий, поэтому дожидаться конца года не буду, а опубликую самое интересное сразу.
Нас взяли в Debian!
Это, пожалуй, главная новость. К сожалению, в Bookworm мы попасть не успели, так что ждите нас в следующем выпуске, или в Ubuntu 23.10. Да, можно будет делать sudo apt install far2l
, без всяких сложностей с ppa или самостоятельной сборкой!
Путь в Debian был непростой: в проекте очень строгие требования по лицензионной чистоте. far2l включает большое количество кода из разных проектов под разными лицензиями (большей частью это BSD, под которой публиковались оригинальные исходники Far, и GPL2, под которой находится код Wine, отдельные фрагменты которого всё ещё используются в проекте, и весь вновь написанный код), и потребовалось значительное время, чтобы заменить лицензионно несовместимые библиотеки.
В частности, пришлось заменить ConvertUTF из состава LLVM на utf-cpp авторства ww898, которая распространяется под подходящей нам MIT. Потом — внести в GPL2 специальное исключение для разрешения линковки с OpenSSL, что потребовало согласования со всеми авторами меняющего лицензию кода. Также для Debian пришлось отказаться от использования libunrar в пользу обвзяки вокруг отдельной утилиты командной строки — опять же из-за лицензионных ограничений, и написать специальный скрипт, собирающий лицензионную информацию со всех файлов с исходниками в единый файл сведений об авторских правах в совместимом с Debian формате. Итог — пакеты лежат на ftp, ура!
Portable версия для Linux теперь куда более portable
Ещё одна новость о доступности far2l на разных системах: portable-сборка, позволяющая скачать far2l в виде одного исполняемого файла, переработана, и теперь запускается на куда большем числе дистрибутивов. Например, она теперь работает и на таких старых системах как Debian 7 и CentOS 6 (там ядро 2.6.32, даже на нём запускается!). Просто скачиваете один-единственный файл, и всё работает.
Сборка для Haiku и OpenWRT/DDWRT
В проект добавлены патчи, позволяющие собрать far2l и для Haiku!
Также добавлены buildroot-скрипты для сборки под embedded платформы, такие как OpenWRT или DDWRT. Теперь можно запустить far2l даже на роутере. В процессе пришлось внести некоторые оптимизации во viewer (до них он тратил по 32 Мб памяти на открытие каждого файла) и поиск в файлах по подстроке, чтобы избежать падений в условиях очень органиченных аппаратных ресурсов. Заодно поддержка протокола SCP в плагине NetRocks (альтернатива NetBox) доработана для нормального взаимодействия с *wrt-роутерами (на которых более надёжного SFTP обычно по умолчанию нет).
Улучшения поддержки буфера обмена в консольной версии
far2l теперь поддерживает стандарты Bracketed Paste и OSC52 (нужно включать в настройках), описывающие протоколы доступа к системному буферу обмена из консольных приложений. В результате консольная версия far2l справляется с копированием и вставкой из графического буфера обмена под такими терминалами как, например, Windows Terminal или iTerm2 (поддержку OSC 52 можно включить и в любом другом терминале с помощью специальной утилиты). Также поддержка активирована и для приложений, работающих внутри встроенного терминала самого far2l.
Развитие экосистемы
В консольный текстовый редактор turbo добавлена поддержка расширений терминала far2l (в частности, поддержка передачи всех сочетаний клавиш и доступ к буферу обмена). turbo интересен тем, что это один из немногих консольных редакторов, где нормально работает перенос по словам — как в windows notepad или html textarea (он сделан на базе движка Scintilla, на котором работает Notepad++). Удобно, когда ты привык работать с длинными текстами в консоли.
В результате мы находимся в моменте, когда два приложения (putty4far2l и turbo) в состоянии общаться между собой на языке расширений терминала far2l даже без использования самого far2l. А ещё putty4far2l (форк putty, где в far2l работают все комбинации клавиш и буфер обмена) обновлен до последней версии апстрима.
Приятные мелочи
Теперь можно запускать far2l сразу с maximized окном (или, наоборот, в стандартном размере, выбор через опции командной строки, см. far2l --help
). Размер и положение окна запоминается при сохранении настроек.
Палитра цветов из ~/config/far2l/palette.ini
теперь применяется и в консольной версии в терминалах, поддерживающих установку палитры через escape-последовательности OSC 4.
Теперь можно вручную задавать допустимые алгортимы шифрования через файл настроек OpenSSH: поможет тем, у кого были проблемы с соединением с некоторыми хостами в NetRocks.
В графической версии побеждён давний баг #1303 (проблемы с рендерингом под rdp, xwayland и на некоторых других системах), заодно ускорили первичную отрисовку окна при запуске.
Добавлена поддержка стандарта .editorconfig — теперь можно задавать настройки табуляции для редактора (использовать табы или пробелы, ширина табов, etc) глобально для всей папки с исходниками какого-либо проекта в одном конфигурационном файле.
Если вы ещё не пробовали far2l, самое время попробовать! Например, установив через ppa или скачав portable сборку под вашу архитектуру. Если появились вопросы — приходите в чат (в основном русскоязычный), а отчёт про баг можно прислать сюда (принимаются и на русском, и на английском). А вот предыдущий выпуск новостей, если вы вдруг его пропустили.