M-Commander 6.1.0: форк Midnight Commander рядом с обычным mc

26 сентября 2026 проект выложил M-Commander 6.1.0. Это двухпанельный файловый менеджер в терминале, собранный как форк GNU Midnight Commander 4.8.33. Своя нумерация у форка с 6.0.1, к пакету GNU он себя не относит, баги несут в репозиторий blue-panels/mcommander. Лицензия GPLv3+.

В этом номере сменились имена. В пакете mc6 команда называлась mc и вставала на место системной. Теперь основная программа ставится как mcommander, рядом с ней симлинки mc6, mcedit6, mview, mdiff и mctree. Имена mc, mcedit, mcview и mcdiff остаются пакету дистрибутива. На сайте уже есть заметка про обычный Midnight Commander: клавиши и две панели там, здесь только то, что изменилось в форке.

Три пакета вместо одного mc

Сборка релиза режется на три пакета. Это прямо написано в debian/control тега v6.1.0.

  • mcommander ставит /usr/bin/mcommander и симлинки, редактор, просмотрщик, справку и скины. В control у него Replaces: mc6: старый пакет mc6 и новый делят путь /usr/bin/mctree, его забирает mcommander. Conflicts с системным mc нет.
  • mcommander-plugins кладёт панельные плагины в /usr/lib/mcommander/panel-plugins/ и программу mcstruct. В описании пакета: архивы через libarchive, FTP, SFTP, Samba, S3, Git, Docker, Kubernetes, MongoDB, SQLite, юниты systemd и shell link по ssh. Туда же попадает новый mcpeek.
  • mcommander-lua ставит runtime Lua и скрипты: Markdown и PDF в просмотрщике, картинки через sixel или Chafa, таблицы dBase, читаемый вид ELF. Без этого пакета менеджер запускается, а луашные куски отсутствуют.

Базовый пакет рекомендует оба соседних, плюс groff-base, man-db и python3. Панели Docker и Kubernetes сами по себе бинарники docker и kubectl не привозят: их ставят отдельно. Для картинок в PDF у lua-пакета в Recommends стоят chafa и poppler-utils, libsixel-bin только в Suggests.

Пользовательские настройки остаются на прежнем месте. В справке плагина SQLite этого же тега свои правила magic.ini по-прежнему ищутся в ~/.config/mc6/magic.ini. Каталоги данных самой программы уже другие: /usr/share/mcommander, /etc/mcommander, /usr/lib/mcommander.

Главная страница вики всё ещё открывается заголовком про 6.0.4, правка от 9 сентября 2026. Там пакет называется mc6, PPA записан как ppa:il-smind/mc6, Homebrew как brew install blue-panels/tap/mc6, и этот пакет подменяет системный mc. Для 6.1.0 эта страница устарела. Ориентир: русские заметки релиза и control-файл тега.

Markdown, mcpeek и строка в mcterm

Просмотрщик получил отрисовку Markdown на Lua. Заголовки, списки, таблицы, ссылки, сноски, блоки кода с той же подсветкой, что в редакторе, выносные формулы и диаграммы Mermaid: flowchart, sequence и class. Большой файл показывает первый экран сразу, остальное дорисовывается, пока просмотрщик отвечает на клавиши. Ссылки, если терминал умеет OSC 8, становятся кликабельными.

Сам просмотрщик перестал быть лентой только для чтения. В текстовом режиме есть курсор, выделение мышью и клавиатурой, копирование в буфер. Та же подсветка работает в просмотре различий. Настройки переноса, подсветки и структурного вида вынесены в отдельный диалог меню Options.

Новый панельный плагин mcpeek открывает сборку .NET деревом: ссылки, ресурсы, пространства имён, типы, члены. Член можно смотреть как декомпилированный C# или как IL, переходить по чужим сборкам и искать использования. Сборку он берёт и с локального диска, и из архива, и с удалённой панели.

Встроенный терминал mcterm заменил старый subshell ещё в прошлых выпусках форка: Ctrl+O, оболочка уже запущена, командная строка показывает её приглашение. В 6.1.0 строку ввода закрепили на месте командной строки M-Commander, а списки дополнения и прочий вывод оболочки уходят выше. Alt-S ищет по scrollback, Alt+Shift+S фильтрует. Fish стартует с интеграцией через свой ключ -C. Ctrl-Insert и Shift-Insert работают и когда строкой владеет оболочка. Большая вставка спрашивает подтверждение.

Отдельная починка, на которой легко потерять файл. При скрытых панелях F8 больше не проваливается сквозь терминал и не удаляет запись панели под ним. F1 в этом режиме открывает справку терминала, F7 создаёт каталог, Shift-F4 создаёт файл в каталоге текущей панели.

Из того, что на сервере чувствуется сразу: Hotlist теперь хранит не только каталоги, но адреса панелей Git, Docker, Kubernetes и архивов. Локальные панели умеют следить за каталогом через inotify, опция называется Watch directories. Скрытую панель помечают устаревшей и перечитывают, когда её снова показывают. В заметках релиза пометка 10 000 файлов по маске занимает доли секунды вместо десятков: событие выделения одно на всю операцию, а не на каждый файл.

Редактор скинов меняет цвета внутри программы и помнит класс скина: 16 цветов, 256 или truecolor. У всех поставленных скинов появились секции для mcterm, mctree и mcstruct, добавлены Mashdark и Tokyo Night. В редакторе буфер обмена запоминает кодировку и при вставке в другой codeset перекодирует текст через iconv, а не сыплет чужие байты. Ctrl-Space внутри архива считает размер каталога по индексу архива.

Плагины, которые форк уже возил с собой

Архивы, FTP, Git и базы в панелях для 6.1.0 не новость. Ядро маленькое, содержимое панели может отдать плагин, загруженный на ходу. Старые встроенные модули ftpfs, sftpfs, tarfs и cpiofs из ядра убраны, это написано в README тега. Архивами занимается arcmc на libarchive: смотреть, собирать и распаковывать zip, 7z, tar и cpio, с прогрессом и отменой.

SQLite открывает базу только на чтение. Схема и записи не меняются. Enter по файлу базы открывает панель, F3 показывает схему. Дальше таблица или представление, страница строк (не больше 200 записей на страницу) и JSON-строка. Файл базы и соседние -wal / -shm должны быть читаемыми, иначе база с недоступным WAL не откроется. Путь в панели выглядит как sqlite:/абсолютный/путь/к/базе.sqlite.

SFTP в этом выпуске оставляет окно ошибки открытым и различает сокет, разрешение имени, аутентификацию и libssh2. На одно действие одна попытка подключения. Копирование целого дерева в панель FTP раньше обрывалось, теперь доходит. Если на удалённой машине нет helper-скриптов для shell link, туда уходит копия, собранная вместе с пакетом: девять из восемнадцати встроенных копий до этого отстали от скриптов в дереве.

Куда ставить, не трогая mc

Системный пакет mc этими командами не удаляется. Ставить имеет смысл все три пакета: без plugins нет панелей архивов и баз, без lua нет Markdown и PDF. На рабочий VPS чужой архив лучше сначала посмотреть на тестовой машине. PPA ниже принадлежит автору форка, это не карман Ubuntu.

Ubuntu 24.04 и 26.04. В Launchpad у ppa:bluepanels/mcommander 26 сентября опубликованы 6.1.0-1~ubuntu24.04.1 (Noble) и 6.1.0-1~ubuntu26.04.1 (Resolute). Если add-apt-repository нет, на минимальном сервере сначала нужен пакет software-properties-common.

sudo add-apt-repository ppa:bluepanels/mcommander
sudo apt update
sudo apt install mcommander mcommander-plugins mcommander-lua

Debian 13 и локальные deb для Ubuntu 26.04 лежат на странице релиза. Отдельного deb под Ubuntu 24.04 там нет, для Noble остаётся PPA. Имена файлов не совпадают с примером в README тега: там шаблон *~debian13*, на релизе файлы вида mcommander_6.1.0-1.debian13.1_amd64.deb. Шаблоном из README apt ничего не найдёт. Ставить через apt install ./файл.deb. dpkg -i пропускает зависимости, в README релиза его прямо отговаривают. Пакеты dbgsym не нужны.

Debian 13, amd64. Для arm64 в имени amd64 меняется на arm64.

sudo apt install \
  ./mcommander_6.1.0-1.debian13.1_amd64.deb \
  ./mcommander-plugins_6.1.0-1.debian13.1_amd64.deb \
  ./mcommander-lua_6.1.0-1.debian13.1_amd64.deb

Ubuntu 26.04 теми же тремя файлами, если PPA не хочется. Суффикс ubuntu26.04.1, архитектуры amd64 и arm64.

sudo apt install \
  ./mcommander_6.1.0-1.ubuntu26.04.1_amd64.deb \
  ./mcommander-plugins_6.1.0-1.ubuntu26.04.1_amd64.deb \
  ./mcommander-lua_6.1.0-1.ubuntu26.04.1_amd64.deb

Fedora 44. В репозитории Fedora этих пакетов нет, rpm приложены к релизу. Глоб mcommander-*.rpm из README зацепит ещё src.rpm и debuginfo, их ставить не надо. Для aarch64 в имени x86_64 меняется на aarch64.

sudo dnf install \
  ./mcommander-6.1.0-1.fc44.x86_64.rpm \
  ./mcommander-plugins-6.1.0-1.fc44.x86_64.rpm \
  ./mcommander-lua-6.1.0-1.fc44.x86_64.rpm

Arch Linux. На релизе только x86_64, это не пакет из официальных репозиториев. Отладочный mcommander-debug не нужен.

sudo pacman -U \
  ./mcommander-6.1.0-1-x86_64.pkg.tar.zst \
  ./mcommander-plugins-6.1.0-1-x86_64.pkg.tar.zst \
  ./mcommander-lua-6.1.0-1-x86_64.pkg.tar.zst

macOS. Тап Homebrew уже переименован: формула mcommander, mc она не ставит, старую формулу mc6 команда brew upgrade заменяет сама. Готовые бутылки есть для Apple Silicon и для x86_64 Linux. На Intel Mac формула собирается из исходников. На релизе отдельно лежат mcommander-6.1.0-macos-arm64.dmg и .pkg.

brew install blue-panels/tap/mcommander
mcommander --version

Для Gentoo в дереве есть packaging/gentoo: его копируют в локальный оверлей как app-misc/mcommander и ставят через emerge. Сборка из git больше не требует Perl и Python: утилита man2hlp ушла, справка читает Markdown.

После установки mcommander --version должен показать форк, а mc --version, если пакет дистрибутива на месте, остаётся GNU Midnight Commander. Если на сервере mc нужен именно как привычная команда из apt или dnf, этот выпуск её не занимает и удалять старый пакет незачем.

Источники и ссылки


Комментарии загружаются…