far2l в Ubuntu 24.04 LTS готов для повседневного использования
Несколько дней назад вышло обновление, устраняющее последние шероховатости UX, и мы рады представить вам долгожданный полноценно работающий Far Manager в составе LTS-версии Ubuntu 24.04. В этой статье я расскажу, как получить максимум удовольствия от его использования. Поехали!
sudo apt update
sudo apt install far2l
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+пробел). Работает она так:
Нажимаете Alt+пробел или Control+пробел
Отпускаете
Нажимаете ту клавишу, сочетание которой с 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
Для начала, освобождаем некоторые комбинации клавиши, которые нужны 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 |
Зависимости | необходимый минимум | + libx11 | + wxWidgets, GTK |
Типичное применение | Сервера, встраиваемые системы (*wrt, etc) | Для запуска в терминале, но с доступом к буферу обмена графического рабочего стола | Графический рабочий стол |
Пакет в Ubuntu 24.04 |
|
| Нет |
Пакет в ppa |
|
|
|
Подключение из графической версии 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. Можно запустить там свой 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 прямо сейчас! Надеемся, он вам понравится.
1 В процессе подготовки статьи в функции sticky keys был обнаружен баг: при не-латинской раскладке клавиатуры вместо «Ctrl+пробел, затем буква» нужно нажимать Ctrl+пробел+буква одновременно; кроме того, комбинации с цифрами работают только в свежей версии из ppa.
2 Исправление бага со вставкой кириллицы из буфера обмена в WT планируем выпустить в очередном апдейте к 24.04.
3 В оригинальной PuTTY с поддержкой сложных сочетаний клавиш всё ещё хуже, чем в GNOME Terminal.