far2l в Ubuntu 24.04 LTS готов для повседневного использования

Несколько дней назад вышло обновление, устраняющее последние шероховатости UX, и мы рады представить вам долгожданный полноценно работающий Far Manager в составе LTS-версии Ubuntu 24.04. В этой статье я расскажу, как получить максимум удовольствия от его использования. Поехали!

sudo apt update
sudo apt install far2l

far2l в Ubuntu 24.04 LTS

far2l в Ubuntu 24.04 LTS

У многих сразу возникнет вопрос:, а зачем apt update? Дело в том, что в релиз попала версия, в которой оставалось несколько досадных багов, и самый заметный из них — не работало выделение файлов клавишами * + — на системах с Wayland. А поскольку Wayland теперь в Ubuntu по умолчанию, я решил не публиковать статью, пока мы не выпустим исправляющее оставшиеся проблемы обновление. Если у вас в Ubuntu 24.04 уже установлен far2l, имеет смысл обновиться до последней версии.

А теперь — несколько полезных советов.

Освобождаем занятые сочетания клавиш

К сожалению, некоторые сочетания клавши, нужные Far’у, перехватываются терминалом или системой. Освободим их (здесь и далее речь о GNOME, который в Ubuntu по умолчанию):

# F10
gsettings set org.gnome.Terminal.Legacy.Settings menu-accelerator-enabled false
# Alt+Space
gsettings set org.gnome.desktop.wm.keybindings activate-window-menu "[]"
# Alt+F1
gsettings set org.gnome.desktop.wm.keybindings panel-main-menu "[]"
# Alt+F2
gsettings set org.gnome.desktop.wm.keybindings panel-run-dialog "[]"
# Alt+F7
gsettings set org.gnome.desktop.wm.keybindings begin-move "['disabled']"
# Alt+F8
gsettings set org.gnome.desktop.wm.keybindings begin-resize "['disabled']"

Разумеется, вы можете освобождать не все комбинации, выбирая только те, которые вам нужнее в Far’е. Аналогичные команды для других окружений рабочего стола вы найдёте здесь.

Не хочу освобождать эти сочетания клавиш, они нужны мне как системные!

Тогда у вас есть два варианта.

Первый: использовать функцию sticky keys или залипание клавиш1 (для неё, впрочем, всё равно придётся освободить сочетание Alt+пробел). Работает она так:

  1. Нажимаете Alt+пробел или Control+пробел

  2. Отпускаете

  3. Нажимаете ту клавишу, сочетание которой с Alt’ом или Control’ом вам нужно

Второй: сделать макросы для использования других сочетаний клавиш на замену.

Например, в консоли ядра не работает Ctrl+F7 (поиск с заменой в редакторе). Обойти эту проблему можно так:

Создаём файл клавиатурных макросов far2l:

far2l -e ~/.config/far2l/settings/key_macros.ini

и пишем туда:

[KeyMacros/Editor/CtrlR]
Sequence=CtrlF7

Сохраняемся, перезапускаем far2l, и вместо Ctrl+F7 используем Ctrl+R.

Подробнее про макроязык и его возможности можно прочитать здесь:
https://api.farmanager.com/ru/macro/macrocmd/index.html
Там есть условные операторы и даже циклы!

Ура, уже можно работать! Но некоторые комбинации клавиш почему-то всё ещё недоступны. Например, переключение режимов отображения файлов на панели через LCtrl+цифры.

Увы, используемый в Ubuntu по умолчанию GNOME Terminal не умеет отправлять эти сочетания клавиш приложениям. Нам понадобится кое-что помощнее! Установим терминал kitty, он умеет слать приложениям любые сочетания клавиш, и есть в репозитории:

sudo apt install kitty

kitty в Ubuntu 24.04 LTS

kitty в Ubuntu 24.04 LTS

Настраиваем kitty

Для начала, освобождаем некоторые комбинации клавиши, которые нужны far2l, но перехватываются самим kitty. Создаём файл конфигурации kitty:

far2l -e ~/.config/kitty/kitty.conf

и пишем туда:

map ctrl+shift+right no_op
map ctrl+shift+left no_op
map ctrl+shift+home no_op
map ctrl+shift+end no_op
enable_audio_bell no

^ Здесь мы также отключаем enable_audio_bell, чтоб при просмотре двоичных файлов не возникали раздражающие бипы.

Как запускать far2l сразу в kitty? Создаём файл-ярлык для стартового меню:

far2l -e /usr/share/applications/kitty-far2l.desktop

и пишем туда:

[Desktop Entry]
Name=Far2l in Kitty
Exec=kitty far2l --tty
Icon=far2l.svg
Type=Application
Categories=Utility;FileManager

Как сделать kitty терминалом по умолчанию?

sudo update-alternatives --config x-terminal-emulator

А теперь ответы на некоторые вопросы

Хочу самую свежую версию и самый лучший UX!

Попробуйте пакет far2l-gui из нашего ppa. Это графическая версия со своим собственным рендерингом консольного окна. Она считается референсом по UX, консольную версию (которая сейчас в репозитории Ubuntu, графическая туда пока не приехала) мы подтягивали по возможностям именно к ней.

Установка:

sudo apt remove far2l*
sudo apt install software-properties-common
sudo add-apt-repository ppa:far2l-team/ppa
sudo apt install far2l-gui

При желании всегда можно вернуться назад:

sudo apt remove far2l*
sudo apt install software-properties-common
sudo add-apt-repository --remove ppa:far2l-team/ppa
sudo apt install far2l

А чем отличается графическая версия от консольной?

Бекенд отрисовки

TTY

TTY|X

GUI

Работает

в любой консоли

в окне терминала в графическом сеансе (X11, Wayland)

в графическом сеансе (X11, Wayland)

Исполняемые файлы

far2l

far2l
far2l_ttyx.broker

far2l
far2l_gui.so

Зависимости

необходимый минимум

+ libx11

+ wxWidgets, GTK

Типичное применение

Сервера, встраиваемые системы (*wrt, etc)

Для запуска в терминале, но с доступом к буферу обмена графического рабочего стола

Графический рабочий стол

Пакет в Ubuntu 24.04

far2l

far2l

Нет

Пакет в ppa

far2l

far2l-ttyx

far2l-gui

Подключение из графической версии far2l к роутеру на ARM с помощью плагина NetRocks

Подключение из графической версии far2l к роутеру на ARM с помощью плагина NetRocks

В Windows Terminal на ввод сыпется мусор при движении мышки

Баг исправлен на стороне Windows Terminal в последнем Pre-release (v1.22.2702.0).

В Windows Terminal не работает вставка кириллицы из буфера обмена

Баг исправлен в far2l в основной ветке2, поэтому в Windows Terminal можно использовать более новую версию из ppa, команды установки — выше. В классической консоли cmd.exe указанная проблема не наблюдается.

Захожу куда-то по ssh, запускаю там far2l, а буфер обмена не работает.

Подключайтесь по ssh (или sftp через плагин NetRocks, он даёт удалённый shell) изнутри локально запущенного far2l. Если буфер обмена работает у вас в локальной версии, заработает и в удалённой.

Подключение по sftp через плагин NetRocks

Подключение по sftp через плагин NetRocks

Работа в удаленной консоли по sftp через плагин NetRocks. Можно запустить там свой far2l, и он «подхватит» буфер обмена вашего рабочего стола.

Работа в удаленной консоли по sftp через плагин NetRocks. Можно запустить там свой far2l, и он «подхватит» буфер обмена вашего рабочего стола.

Альтернатива в Windows — использовать специально приспособленные к работе с far2l форки3 PuTTY: putty4far2l и KiTTY (не путать с kitty для *nix, о которой написано выше).

Как через плагин NetRocks подключаться к облакам? Там только sftp, ftp и т.д.

Решение здесь.

Есть ли для Маков и BSD?

Да и да. На Маках скачиваем со страницы релизов или ставим из Homebrew Cask:

brew install --cask far2l

На FreeBSD из freshports.

На Маках лучше запускать под iTerm2. На BSD — под той же kitty, что и в Ubuntu.

Есть ли в Linux Mint?

Да, начиная с 22-й его версии.

А скрипты на Lua будут?

Уже есть. В проекте far2m, это форк с Lua, максимально приближенный к Far3. У него есть свой отдельный ppa.

Заключение

Мы шли к этому моменту 8 лет. Надеемся, опыт работы с far2l в Ubuntu будет приятным! И, конечно, приходите к нам в чат, там дружественная атмосфера и вам охотно ответят на все ваши вопросы. А ещё у нас есть вики, развиваемая сообществом, там вы найдете множество лайфхаков и полезных подсказок. Оставлю заодно ссылки на GitHub проекта и portable и AppImage-сборки, не требующие установки.

В заключение хочу сказать спасибо @elfmz (главному разработчику, написавшему большую часть кода), Alex Myczko (мейнтейнеру Debian), Dmitry Shachnev (мейнтейнеру Ubuntu), Александру (комодератору чата и активному коммитеру), Павлу (поддерживающему ppa), Shmuel (развивающему форк с Lua) и всем остальным разработчикам, тестировщикам и авторам документации, сделавшим свой вклад, большой и не очень.

Попробуйте far2l прямо сейчас! Надеемся, он вам понравится.

34d6d946de30ae664be73b3d97cd2c88.png


1
В процессе подготовки статьи в функции sticky keys был обнаружен баг: при не-латинской раскладке клавиатуры вместо «Ctrl+пробел, затем буква» нужно нажимать Ctrl+пробел+буква одновременно; кроме того, комбинации с цифрами работают только в свежей версии из ppa.
2 Исправление бага со вставкой кириллицы из буфера обмена в WT планируем выпустить в очередном апдейте к 24.04.
3 В оригинальной PuTTY с поддержкой сложных сочетаний клавиш всё ещё хуже, чем в GNOME Terminal.

© Habrahabr.ru