mtn2-tui – версия MTN2 для текстового терминала Linux. Окна те же, что в графической программе: две
панели с вкладками, просмотрщик, редактор, консоль, терминалы, меню, диалоги и справка. Вместо окна программа
занимает весь терминал: на экран выводятся только изменившиеся ячейки (TrueColor, широкие символы CJK в две
колонки), ввод идёт с клавиатуры и мыши терминала. Работает по SSH, в tmux, в контейнерах и на серверах без X11.
Сборка – BUILDING.md, раздел «Сборка под Linux». Версия с обычным окном SDL2 (mtn2-sdl) описана в разделе «Версия с окном SDL2» ниже.
Linux x86-64 с glibc 2.34 или новее (Ubuntu 22.04, Debian 12, Fedora 35, RHEL 9 и новее) и libstdc++, libz.
Графический стек не нужен: Skia и FireMonkey, на которых построено окно Windows-версии, в Linux-программах не используются (mtn2-tui рисует текстом, mtn2-sdl – через SDL2 и FreeType). Для открытия файлов в графической среде используется xdg-open, для SFTP – клиент sftp.
В программу встроен только английский язык. Остальные языки и справка F1 лежат в папке resource/<язык>/ рядом с программой (она входит в архив и пакет); новый язык добавляется копированием такой папки, см. SDS.md (раздел о локализации).
Релиз содержит MTN2-<версия>-linux-x64.tar.gz и пакет MTN2-<версия>-linux-x64.deb.
tar xzf MTN2-*-linux-x64.tar.gz && ./mtn2/install.sh # для себя: ~/.local/opt/mtn2, команда mtn2
sudo ./mtn2/install.sh # для всех: /opt/mtn2, команда mtn2
sudo apt install ./MTN2-*-linux-x64.deb # то же пакетом (рекомендует 7zip или p7zip-full и chafa)
./mtn2/install.sh --uninstall # удалитьПапку из архива можно и не устанавливать: mtn2/mtn2-tui запускается где лежит.
mtn2-tui [параметры] [папка]| Параметр | Что делает |
|---|---|
папка |
открывает её новой вкладкой |
--no-mouse |
не просить у терминала события мыши (тогда выделение и копирование – средствами терминала) |
--colors=truecolor|256|16 |
число цветов; по умолчанию – по COLORTERM и TERM (Windows Terminal определяется по WT_SESSION) |
--dump [Ш В] |
нарисовать один экран простым текстом в стандартный вывод и выйти (для проверок без терминала) |
--version, --help |
версия, справка |
Выход – F10 или Alt+X. Панели, вкладки и настройки сохраняются при выходе.
mtn2-sdl – та же программа в обычном графическом окне: рабочий стол Linux (X11 или Wayland, в Windows – WSLg), шрифт из системы, мышь и колесо, ввод в любой раскладке, буфер обмена рабочего стола. Окна, меню, диалоги, плагины и настройки те же, что у mtn2-tui, и лежат в том же ~/.config/mtn2. Версия пробная; она входит в архив tar.gz и пакет .deb (команда mtn2-sdl рядом с mtn2), а из исходников собирается ключом -Sdl.
| Пакет | Для чего |
|---|---|
libsdl2-2.0-0 |
окно, события, буфер обмена (обязательно) |
libfreetype6 |
рисование символов (обязательно) |
fontconfig, fonts-dejavu-core |
поиск файла шрифта; нужен хотя бы один моноширинный шрифт |
libsdl2-image-2.0-0 |
картинки PNG, JPEG, GIF, WebP в быстром просмотре; без неё показываются только BMP |
sudo apt install libsdl2-2.0-0 libfreetype6 fontconfig fonts-dejavu-core libsdl2-image-2.0-0Библиотеки подключаются при запуске, а не при сборке: без libsdl2-image программа стартует, а при нехватке остальных пишет, чего не хватает. Проверка: mtn2-sdl --self-check выводит найденные библиотеки, файл шрифта, ресурсы и плагины.
Сборка идёт из Windows тем же компилятором, что и mtn2-tui:
./src/build-linux.ps1 -Sdl # -> bin\linux64\mtn2-sdl (вместе с mtn2-tui)Запуск – ./mtn2-sdl [параметры] [папка] рядом с plugins/ и libwasmtime.so; в WSL с WSLg окно появляется на рабочем столе Windows.
| Параметр | Что делает |
|---|---|
папка |
открывает её новой вкладкой |
--font=ИМЯ |
семейство шрифта (по умолчанию DejaVu Sans Mono) |
--size=N |
размер шрифта в пикселях |
--cols=N, --rows=N |
размер сетки при открытии окна |
--snapshot=файл.png |
нарисовать один кадр в PNG без окна и выйти (для проверок без рабочего стола) |
--self-check |
проверить библиотеки, шрифт, ресурсы и плагины |
--version, --help |
версия, справка |
В окне размер шрифта меняется Ctrl и колесом, Ctrl+Плюс, Ctrl+Минус; Ctrl+0 возвращает исходный.
- Набранный текст берётся из событий текстового ввода, а сочетания с
CtrlиAlt– из физических клавиш, поэтому они работают в любой раскладке.AltGrпечатает символы и не включаетAlt. - Файл, брошенный в окно из файлового менеджера, вставляется в программу как путь.
- Картинка быстрого просмотра рисуется пикселями поверх сетки и остаётся, пока просмотр открыт.
- Ошибки запуска и работы записываются в
sdl-error.logв каталоге настроек. - Пока нет значков оболочки в панелях, ввода через IME и перетаскивания файлов из окна наружу; размер шрифта между запусками не сохраняется.
- В WSL процессы живут, пока работает дистрибутив: окно, запущенное без открытой консоли WSL, надо стартовать отсоединённо (
setsid nohup ./mtn2-sdl &).
- UTF-8 и TrueColor (kitty, WezTerm, Alacritty, foot, GNOME Terminal, Konsole, Windows Terminal, iTerm2). В терминалах
на 256 цветов программа сама подбирает ближайшие цвета, на 16 цветах (консоль
linux) – ближайшие из палитры ANSI. - Расширенная клавиатура. При старте программа включает протокол kitty keyboard; терминал, который его знает
(kitty, foot, Ghostty, Alacritty 0.13+, WezTerm с
enable_kitty_keyboard), передаёт все сочетания, включаяCtrl+Shift+...,Ctrl+;иCtrl+Tab, а на нелатинской раскладке сочетания работают по клавише, как на Windows. В остальных терминалах запрашивается режимmodifyOtherKeysxterm. Если и его нет, часть сочетаний недоступна: команды сCtrl+Shiftвызывайте через меню (F9). - Отпускание клавиш терминал не передаёт, поэтому то, что на Windows живёт, пока зажат
CtrlилиAlt, здесь завершается само: выбор диска поCtrl+Left/Rightприменяется через 0,7 с после последнего нажатия, а быстрый поиск поAltи список историиAlt+Left/Rightзакрываются через 1,5 с или любой клавишей безAlt. - Мышь: нажатия, перетаскивание и колесо (протокол SGR 1006). Чтобы выделить текст средствами терминала, держите
Shift. - Буфер обмена: копирование отправляется в терминал последовательностью OSC 52 (её понимают почти все
современные терминалы; в
tmuxвключитеset -g set-clipboard on). Вставка – обычная вставка терминала (Ctrl+Shift+V), она приходит в программу как «вставка в скобках». - Копирование файлов:
Ctrl+CиCtrl+Xна панели кладут список файлов в буфер рабочего стола черезwl-copy(Wayland) илиxclip(X11), поэтому их можно вставить в Nautilus, Dolphin, Thunar и другие файловые менеджеры, а файлы, скопированные там, вставляются в панель поCtrl+V. Пакеты:wl-clipboardилиxclip. Без них (и по SSH без графической среды) список передаётся только внутри программы.
- Панели, вкладки и рабочие пространства, быстрый поиск, фильтр, выделение по маске, сравнение каталогов, синхронизация, история и избранные папки.
- Копирование, перенос, удаление, создание папок и ссылок (символические и жёсткие), контрольные суммы, поиск файлов.
- Колонка «Attr» показывает права (
rwxr-xr-x); скрытыми считаются файлы, имя которых начинается с точки. - Команда «Атрибуты» (
Ctrl+A) открывает диалог прав: режим в восьмеричной записи (0644,4755) с подсказкой в видеrw-r--r--, владелец и группа, «Обрабатывать вложенные папки». В план попадают только изменённые поля; смена владельца требует прав root. - Диски: точки монтирования из
/proc/self/mountinfo; быстрые папки: домашняя, пользовательские каталоги XDG,/,/etc,/usr,/var,/opt,/tmp,/media,/mnt. - Корзина по спецификации freedesktop.org:
~/.local/share/Trash(filesиinfo). - Просмотрщик, редактор, Quick View, Markdown. Обновление списка при изменении каталога – через inotify.
- Папка консоли переходит в панель, а команда из командной строки возвращает в панели по завершении (параметр «Всегда возвращаться в панели»): папку оболочки программа читает из
/proc, конец команды – по тому, что оболочка снова на переднем плане и вывод стих. - Консоль под панелями (
Ctrl+O) и терминалы во вкладках работают на настоящем псевдотерминале: bash, zsh, fish,ssh-профили. Оболочки берутся из/etc/shellsи$SHELL;Enterна исполняемом файле запускает его в консоли. - Архивы zip как папки, SFTP (нужен клиент
sftp). - Плагины из папки
plugins/: библиотеки.soи WebAssembly-модули (нуженlibwasmtime.so, он лежит рядом с программой). Плагинmtn.7zоткрывает 7z, RAR, TAR, ISO и другие архивы как папки и упаковывает в 7z через программу 7-Zip: установите пакет7zip(команда7zz) илиp7zip-full(команда7z); без неё плагин сообщает, что архивов не откроет. - Картинки (png, jpeg, gif, bmp, webp и другие, что понимает
chafa) в быстром просмотре показываются цветными блоками: программа вызываетchafa --format=symbolsи выводит результат в ячейки панели. Нужен пакетchafa; без него на месте картинки подсказка. Показываются только локальные файлы; картинки в архивах и на SFTP не просматриваются. - Файл, который нечем открыть в окружении без рабочего стола, открывается во встроенном просмотрщике; с
рабочим столом (
DISPLAYилиWAYLAND_DISPLAY) – черезxdg-open.
- Нативные плагины, написанные для Windows (
.dll): в Linux работают плагины-библиотеки.so, собранные под Linux. - Значки файлов в панелях (в терминале нечем их показать), перетаскивание файлов в другие программы, окна плагинов.
- Смена шрифта и масштаба (это забота терминала).
- Атрибуты Windows (скрытый, системный, архивный, дата создания): диалог прав меняет режим, владельца и группу.
«Помощь – Проверить обновления» и тихая проверка после запуска работают, как в Windows: берётся пакет
MTN2-<версия>-linux-x64.tar.gz последнего релиза, проверяется контрольная сумма, распаковывается рядом с программой
и устанавливается. Нужны права на запись в папку программы и tar. После установки программа запускается заново в том
же терминале. Версия берётся из файла version рядом с программой.
Если операция (копирование, перенос, удаление, создание папки, сохранение файла) закончилась отказом в доступе,
программа предлагает повторить её от администратора. Пароль спрашивается в окне программы и передаётся команде
sudo -S -v; сам пароль не хранится, дальше работает кэш sudo, он же решает, когда права истекают (тогда пароль
запрашивается снова). Каждая операция – одна команда sudo (rm, mkdir, cp, mv, cat). Нужен установленный
sudo и учётная запись, которой он разрешён; под root предложения нет.
Настройки лежат в $XDG_CONFIG_HOME/mtn2 (по умолчанию ~/.config/mtn2): session.json, keymap.json,
themes/, истории. Ошибки интерфейса, которые не остановили программу, записываются в tui-error.log там же.