- PVSM.RU - https://www.pvsm.ru -

Linux-порт Far Manager: новости весны 2023

Обычно я пишу статьи об развитии проекта far2l [1] — порта знаменитого Far Manager [2] под Linux, MacOS и BSD (а теперь ещё и Haiku) раз в год. Но иногда случается так, что объем новостей на статью набирается быстрее. Недавно произошло сразу несколько важных событий, поэтому дожидаться конца года не буду, а опубликую самое интересное сразу.

Нас взяли в Debian!

Это, пожалуй, главная новость. К сожалению, в Bookworm мы попасть не успели, так что ждите нас в следующем выпуске, или в Ubuntu 23.10. Да, можно будет делать sudo apt install far2l, без всяких сложностей с ppa или самостоятельной сборкой!

Linux-порт Far Manager: новости весны 2023 - 1

Путь в Debian был непростой [3]: в проекте очень строгие требования по лицензионной чистоте. far2l включает большое количество кода из разных проектов под разными лицензиями (большей частью это BSD, под которой публиковались оригинальные исходники Far, и GPL2, под которой находится код Wine, отдельные фрагменты которого всё ещё используются в проекте, и весь вновь написанный код), и потребовалось значительное время, чтобы заменить лицензионно несовместимые библиотеки.

В частности, пришлось заменить ConvertUTF [4] из состава LLVM на utf-cpp авторства ww898 [5], которая распространяется под подходящей нам MIT. Потом — внести в GPL2 специальное исключение [6] для разрешения линковки с OpenSSL [7], что потребовало согласования со всеми авторами меняющего лицензию кода. Также для Debian пришлось отказаться от использования libunrar в пользу обвзяки вокруг отдельной утилиты командной строки — опять же из-за лицензионных ограничений, и написать специальный скрипт, собирающий лицензионную информацию со всех файлов с исходниками в единый файл сведений об авторских правах в совместимом с Debian формате. Итог — пакеты лежат на ftp [8], ура!

Portable версия для Linux теперь куда более portable

Ещё одна новость о доступности far2l на разных системах: portable [9]-сборка, позволяющая скачать far2l в виде одного исполняемого файла, переработана, и теперь запускается на куда большем числе дистрибутивов. Например, она теперь работает и на таких старых системах как Debian 7 и CentOS 6 (там ядро 2.6.32, даже на нём запускается!). Просто скачиваете один-единственный файл, и всё работает.

Linux-порт Far Manager: новости весны 2023 - 2

Сборка для Haiku и OpenWRT/DDWRT

В проект добавлены патчи [10], позволяющие собрать far2l и для Haiku [11]!

Linux-порт Far Manager: новости весны 2023 - 3

Также добавлены buildroot-скрипты [12] для сборки под embedded платформы, такие как OpenWRT или DDWRT. Теперь можно запустить far2l даже на роутере. В процессе пришлось внести некоторые оптимизации [13] во viewer (до них он тратил по 32 Мб памяти на открытие каждого файла) и поиск в файлах по подстроке, чтобы избежать падений в условиях очень органиченных аппаратных ресурсов. Заодно поддержка протокола SCP [14] в плагине NetRocks (альтернатива NetBox) доработана для нормального взаимодействия с *wrt-роутерами (на которых более надёжного SFTP обычно по умолчанию нет).

Улучшения поддержки буфера обмена в консольной версии

far2l теперь поддерживает стандарты Bracketed Paste [15] и OSC52 [16] (нужно включать в настройках), описывающие протоколы доступа к системному буферу обмена из консольных приложений. В результате консольная версия far2l справляется с копированием и вставкой из графического буфера обмена под такими терминалами как, например, Windows Terminal или iTerm2 (поддержку OSC 52 можно включить и в любом другом терминале с помощью специальной утилиты [17]). Также поддержка активирована и для приложений, работающих внутри встроенного терминала самого far2l.

Развитие экосистемы

В консольный текстовый редактор turbo [18] добавлена поддержка расширений терминала far2l (в частности, поддержка передачи всех сочетаний клавиш и доступ к буферу обмена). turbo интересен тем, что это один из немногих консольных редакторов, где нормально работает перенос по словам — как в windows notepad или html textarea (он сделан на базе движка Scintilla [19], на котором работает Notepad++). Удобно, когда ты привык работать с длинными текстами в консоли.

Linux-порт Far Manager: новости весны 2023 - 4

В результате мы находимся в моменте, когда два приложения (putty4far2l и turbo) в состоянии общаться между собой на языке расширений терминала far2l даже без использования самого far2l. А ещё putty4far2l (форк putty, где в far2l работают все комбинации клавиш и буфер обмена) обновлен [20] до последней версии апстрима.

Приятные мелочи

Теперь можно запускать far2l сразу с maximized окном (или, наоборот, в стандартном размере, выбор через опции командной строки, см. far2l --help). Размер и положение окна запоминается при сохранении настроек.

Палитра цветов из ~/config/far2l/palette.ini теперь применяется и в консольной версии в терминалах, поддерживающих установку палитры через escape-последовательности OSC 4.

Теперь можно [21] вручную задавать допустимые алгортимы шифрования через файл настроек OpenSSH: поможет тем, у кого были проблемы с соединением с некоторыми хостами в NetRocks.

В графической версии побеждён давний баг #1303 [22] (проблемы с рендерингом под rdp, xwayland и на некоторых других системах), заодно ускорили первичную отрисовку окна при запуске.

Добавлена поддержка стандарта .editorconfig [23] — теперь можно задавать настройки табуляции для редактора (использовать табы или пробелы, ширина табов, etc) глобально для всей папки с исходниками какого-либо проекта в одном конфигурационном файле.

Если вы ещё не пробовали far2l, самое время попробовать! Например, установив через ppa [24] или скачав portable сборку [9] под вашу архитектуру. Если появились вопросы — приходите в чат [25] (в основном русскоязычный), а отчёт про баг можно прислать сюда [26] (принимаются и на русском, и на английском). А вот предыдущий выпуск [27] новостей, если вы вдруг его пропустили.

Автор: Иван Сорокин

Источник [28]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/c-3/383611

Ссылки в тексте:

[1] far2l: https://github.com/elfmz/far2l

[2] Far Manager: https://www.farmanager.com/

[3] непростой: https://github.com/elfmz/far2l/issues/692

[4] ConvertUTF: https://llvm.org/doxygen/ConvertUTF_8cpp_source.html

[5] utf-cpp авторства ww898: https://github.com/ww898/utf-cpp

[6] исключение: https://github.com/elfmz/far2l/commit/b4b94ea7fa0ab80412ffdbe74335839554aba16d

[7] разрешения линковки с OpenSSL: https://en.wikipedia.org/wiki/OpenSSL#Licensing

[8] лежат на ftp: http://ftp.debian.org/debian/pool/main/f/far2l/

[9] portable: https://github.com/unxed/far2l-deb/tree/master/portable

[10] патчи: https://github.com/elfmz/far2l/pull/1443

[11] Haiku: https://github.com/elfmz/far2l/issues/1413

[12] buildroot-скрипты: https://github.com/elfmz/far2l/tree/master/packaging/buildroot/far2l

[13] оптимизации: https://github.com/elfmz/far2l/issues/1438

[14] SCP: https://en.wikipedia.org/wiki/Secure_copy_protocol

[15] Bracketed Paste: https://en.wikipedia.org/wiki/Bracketed-paste

[16] OSC52: https://www.reddit.com/r/vim/comments/k1ydpn/a_guide_on_how_to_copy_text_from_anywhere/

[17] утилиты: https://github.com/unxed/pb52l

[18] turbo: https://github.com/magiblot/turbo

[19] Scintilla: https://www.scintilla.org/

[20] обновлен: https://github.com/ivanshatsky/putty4far2l/releases/tag/0.78.2-dev

[21] можно: https://github.com/elfmz/far2l/issues/1362#issuecomment-1399564926

[22] #1303: https://github.com/elfmz/far2l/issues/1303

[23] .editorconfig: https://editorconfig.org/

[24] ppa: https://launchpad.net/~far2l-team/+archive/ubuntu/ppa

[25] приходите в чат: https://t.me/far2l_ru

[26] сюда: https://github.com/elfmz/far2l/issues

[27] предыдущий выпуск: https://habr.com/ru/post/698450/

[28] Источник: https://habr.com/ru/post/724118/?utm_source=habrahabr&utm_medium=rss&utm_campaign=724118