- PVSM.RU - https://www.pvsm.ru -
Предыдущий пост [1] про порт Far Manager под Linux, far2l [2], оказался невероятно популярным, так что я подумал, что неплохо бы раз в год писать что-то вроде дайджеста самых интересных новостей разработки. Начнём.
Теперь far2l, как и mc, умеет использовать буфер обмена X11 даже в консольной версии (в графической умел с самого начала). Для этого собирается отдельный модуль взаимодействия с X, который загружается, только если в системе установлена библиотека libx11. Можно даже ходить на удаленные сервера через ssh -X, буфер обмена будет работать и там (опять же, если libx11 на сервере установлена).
И ещё о консольном режиме. Не забываем про параметр командной строки --ee, позволяющий избавиться от необходимости нажимать ESC дважды.
Кстати, о клавиатуре в консоли. Горячие клавиши в сторонних терминалах поддерживаются практически все — по крайней мере, я знаю только про проблемы с комбинациями Ctrl+цифра, над ними идёт работа [3].
Долгое время все сообщения об ошибках far2l показывали цифровые коды ошибок, пришедшие из мира Windows и не несущие никакой полезной информации. Теперь это исправили, все сообщения об ошибках стали семантические, а коды ошибок — родные для платформы.
Во встроенный просмотрщик добавили поддержку ANSI escape-последовательностей для управления цветом отображения, так что просмотр логов встроенного терминала теперь в цвете. Удобно, когда разбираешь логи компилятора, например.
Вообще просмотрщик сильно улучшили. Например, у него появился так называемый «processed mode» (переключается по F5), позволяющий получить информацию о файле (скажем, увидеть текстовое представление PDF'ки или технические данные об изображении).
В multiarc-плагине, через который в far2l сделана работа с архивами, есть поддержка псевдоформата custom, позволяющего задавать в текстовом конфиге сигнатуру архива, командные строки архиватора и формат его выдачи. Это позволяет легко и просто добавлять поддержку любых мыслимых форматов. Например, таким образом теперь поддерживаются [4] форматы образов диска большинства виртуальных машин, и даже такая экзотика в мире Линукс как формат WIM.
Исторически настройки far2l лежали в структуре, напоминающей реестр Windows, но работающей на текстовых файлах. Такое решение было выбрано для удобства портирования, но удобным способом работы с файлами конфигурации его назвать сложно. Теперь этот рудимент исчез, а все настройки лежат в ~/.config/far2l в человекочитаемых .ini файлах
Кстати, в папке настроек тоже навели порядок — все временные рабочие файлы перенесли оттуда в ~/.cache/far2l (/tmp для них не слишком подходит, так как там могут быть критичные пользовательские данные).
Переходом с UCD на Uchardet завершилось наведение порядка с библиотеками и зависимостями. Теперь статически собираются только libcolorer (потому что нет в репах дистрибутивов), 7z/unrar (чтоб всегда свежие были) и utf-cpp [5] (т.к. у нас своя, слегка адаптированная версия). Все остальные библиотеки используются из дистрибутива.
Кстати, при переходе на Uchardet заодно починили запуск автоопределения кодировки текста через пункт в меню редактора и просмотрщика.
После удаления из far2l библиотеки конвертации форматов UTF из clang и добавления в лицензию плагина NetRocks GPL-исключения для OpenSSL проект стал полностью совместим с лицензионными требованиями Debian, идёт работа над пакетом [6].
Точнее сказать — мы думаем, что совместим. Юристов в команде пока нет :)
Командные строки для вызова распаковщиков разной экзотики вроде ARJ и ACE заменили на вызов утилит, присутствующих в актуальных версиях дистрибутивов. Теперь все форматы, заявленные как поддерживаемые — как минимум распаковываются. Для некоторых потребуется поставить сторонние утилиты, а вот поддержку формата .ha сделали встроенной — люди, которые помнят фидо, это оценят :)
Раньше автоматизированная сборка выполнялась только для Linux платформы, теперь скрипты continious integration есть и для BSD, и для Mac. Ошибки, проявляющиеся только на этих платформах, будут отлавливаться быстрее.
Устранена куча предупреждений компилятора и «мёртвого» кода. большая часть оставшихся — из colorer'а, который в неизменном виде берется из апстрима. Переписан [7] код копирования файлов — улучшена поддержка символических ссылок, повышена производительность. Добавлена поддержка Copy-on-Write и sparse-файлов. Много небольших улучшений [8] производительности [9], включая сетевую: поддержка сжатия SSH трафика в NetRocks и более оптимальное [10] отображение интерфейса в терминалах.
Теперь графический бекенд, который рисует окно фара через wx widgets, собирается в отдельный модуль, который автоматически проверяет наличие нужных библиотек в системе, и, если их нет, far2l запускается в консольном режиме. Удобно: можно собрать этот модуль в отдельный пакет, зависимый от wx, а весь остальной far2l собрать в другой пакет без этой зависимости. Упростит установку на серверах без графики.
А нужна ли нам вообще wx версия, если в консоли теперь работает всё или почти всё? Есть мнение, что нужна — если мы хотим полноценный опыт работы с Far как-в-винде, без скидок и компромиссов. Обсуждаем это здесь [11].
PS: Все же знают, что есть пропатченная putty [12], в которой в far2l работает буфер обмена и все сочетания клавиш?
Автор: Иван Сорокин
Источник [13]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/370241
Ссылки в тексте:
[1] Предыдущий пост: https://habr.com/ru/post/524370/
[2] far2l: https://github.com/elfmz/far2l
[3] идёт работа: https://github.com/elfmz/far2l/issues/1126
[4] поддерживаются: https://github.com/elfmz/far2l/blob/master/multiarc/configs/plug/custom.ini
[5] utf-cpp: https://github.com/ww898/utf-cpp
[6] работа над пакетом: https://github.com/elfmz/far2l/issues/692
[7] Переписан: https://github.com/elfmz/far2l/pull/1050
[8] улучшений: https://github.com/elfmz/far2l/pull/1022
[9] производительности: https://github.com/elfmz/far2l/pull/1041
[10] более оптимальное: https://github.com/elfmz/far2l/pull/903
[11] здесь: https://github.com/elfmz/far2l/issues/1101
[12] пропатченная putty: https://github.com/unxed/putty4far2l
[13] Источник: https://habr.com/ru/post/593451/?utm_source=habrahabr&utm_medium=rss&utm_campaign=593451
Нажмите здесь для печати.