Несколько дней назад вышло обновление, устраняющее последние шероховатости UX, и мы рады представить вам долгожданный полноценно работающий Far Manager в составе LTS-версии Ubuntu 24.04. В этой статье я расскажу, как получить максимум удовольствия от его использования. Поехали!
sudo apt update
sudo apt install far2l
У многих сразу возникнет вопрос: а зачем 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
Для начала, освобождаем некоторые комбинации клавиш, которые нужны 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 |
|
|
|
В Windows Terminal на ввод сыпется мусор при движении мышки и/или не работает вставка (вообще или только кириллицы) из буфера обмена
sudo apt update && sudo apt install far2l
Придёт обновлённая версия, в которой эти ошибки исправлены.
Если Paste работает медленно, можно настроить Windows Terminal на использование другой комбинации клавиш для Paste, например, Ctrl+Shift+V. Тогда Ctrl+V будет обрабатывать сам far2l, он находит XWayland от WSLg и через него прекрасно работает с буфером обмена сам.
А как это в Windows Terminal настраивается?
У меня другие проблемы с буфером обмена
Если запускаете far2l локально, убедитесь, что у его процесса есть доступ к X11 или XWayland.
Также убедитесь, что ваш терминал сам не перехватывает комбинации клавиш копирования и вставки (Ctrl+C/V, Ctrl/Shift+Ins). Если горячие клавиши терминала перенастроить нельзя, можно использовать в far2l другие клавиши, создав соответствующие макросы. Вот пример макроса, назначающего Ctrl+J заменой Ctrl+V:
В файл ~/.config/far2l/settings/key_macros.ini
пишем
[KeyMacros/Common/CtrlJ]
Sequence=CtrlV
Если работаете по ssh, подключайтесь изнутри локально запущенного far2l (из его командной строки или через плагин NetRocks, он даёт удалённый shell при использовании протоколов SFTP или SHELL). Если буфер обмена работает у вас в локальной версии, заработает и в удалённой.
В Windows Terminal, iTerm2, kitty и некоторых других терминалах поможет включение OSC52 в настройках far2l (раздел «Интерфейс»; в iTerm2 также понадобится включить OSC52 в настройках терминала).
Альтернатива в Windows — использовать специально приспособленные к работе с far2l форки2 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), @mitya57 (мейнтейнеру Ubuntu), @kruphi (комодератору чата и активному коммитеру), Павлу (поддерживающему ppa), @shmuz (развивающему форк с Lua) и всем остальным разработчикам, тестировщикам и авторам документации, сделавшим свой вклад, большой и не очень.
Попробуйте far2l прямо сейчас! Надеемся, он вам понравится.
1 В процессе подготовки статьи в функции sticky keys был обнаружен баг: при не-латинской раскладке клавиатуры вместо «Ctrl+пробел, затем буква» нужно нажимать Ctrl+пробел+буква одновременно; кроме того, комбинации с цифрами работают только в свежей версии из ppa.
2 В оригинальной PuTTY с поддержкой сложных сочетаний клавиш всё ещё хуже, чем в GNOME Terminal.