Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Modern Turbo Navigator 2: двухпанельный файловый менеджер на Delphi и Skia

Modern Turbo Navigator 2: двухпанельный файловый менеджер на Delphi и Skia

Знаете это царапающее чувство, когда в современной операционной системе открываешь привычный файловый менеджер, а он задумчиво ждет пару секунд перед отображением каталога или сетевого диска? Именно стремление избавиться от подобных задержек и создать идеальный инструмент «без отрыва рук от клавиатуры» подтолкнуло меня к разработке собственного проекта — Modern Turbo Navigator 2 (MTN2). Из NDN с любовью — так можно охарактеризовать эту попытку объединить классическую эстетику текстовых интерфейсов с возможностями современных графических конвейеров.

Служебный элемент интерфейса MTN2
Вспомогательный элемент графической оболочки файлового менеджера.
Фрагмент интерфейса настройки программы
Отображение внутренних элементов управления и меню настроек.
Дополнительный системный элемент интерфейса
Элемент визуального оформления рабочей среды приложения.
Компонент визуального редактора диалогов
Вспомогательное окно визуальной верстки пользовательских диалогов.
Дополнительный элемент структуры программы
Интерфейсная зарисовка служебного окна файлового менеджера.
Служебный скриншот тестирования сборки
Техническая иллюстрация процессов тестирования и компиляции.
Внутренний элемент графического оформления
Фрагмент текстурного атласа для рендеринга символов через Skia.

Информационный шум вокруг уверяет, что десктопные интерфейсы давно застряли в браузерных движках, а облачные хранилища заменили локальные диски. Но на практике, когда нужно за полминуты навести порядок в каталогах, сравнить контрольные суммы или быстро править конфигурационные файлы, инженеры по-прежнему инстинктивно тянутся к двухпанельной компоновке. Оценивая эволюцию таких утилит, как DOS Navigator, FAR Manager или Total Commander, я понял: оптимального баланса скорости, клавиатурной эргономики и визуального комфорта проще добиться, написав инструмент самостоятельно с учетом собственных привычек.

Схема архитектурных компонентов MTN2
Схематичное представление базовых механизмов отрисовки и системных интеграций.

Выбор архитектуры и технологий

Первая версия утилиты создавалась на Rust в связке с crossterm и ratatui, однако разработка быстро уперлась в жесткие ограничения стандартной системной консоли Windows. Дискретные знакоместа, проблемы с масштабированием шрифтов колесом мыши, отсутствие нормальных системных значков рядом с именами файлов и периодическая потеря сложных комбинаций вроде Ctrl+Alt+Ins сделали дальнейшее развитие тупиковым. Использование тяжелых решений вроде Electron с его сотнями мегабайт памяти для простой навигации по дискам также отметалось сразу.

Реклама

Единственным правильным решением оказалось создание собственного графического окна с отрисовкой виртуальной символьной сетки силами GPU. В качестве рабочей среды был выбран Object Pascal в среде Delphi со связкой FireMonkey и библиотеки Skia. Высокая скорость компилятора, монолитный бинарник без внешних сред исполнения и глубокое знание платформы позволили получить мгновенный холодный старт и минимальное потребление оперативной памяти.

Рабочее пространство MTN2 с подсветкой и быстрым просмотром
Рабочая зона MTN2: двухпанельная навигация, системные иконки файлов и панель быстрого просмотра.

Рабочее пространство MTN2 спроектировано как двухпанельный менеджер с поддержкой вкладок, системных иконок, цветовой подсветки и быстрого просмотра содержимого файлов на соседней панели.

Организация интерфейса опирается на компактные записи (record) вместо тяжелых классов, размещая всю сетку экрана в едином непрерывном блоке памяти. Композитор окон обрабатывает матрицу видимых символов с учетом теней и Z-порядка, а движок Skia выполняет аппаратный рендеринг.

Встроенный терминал и эргономика

Особое внимание уделено интеграции с командной оболочкой. Встроенный эмулятор работает напрямую через Windows Pseudo Console API (ConPTY), поддерживая xterm 24-bit TrueColor, вывод PowerShell и плавную отрисовку градиентов без мерцания и задержек.

Управление построено на базе проверенной раскладки FAR Manager, благодаря чему основные действия выполняются вслепую, без необходимости тянутся к мыши. Для работы с документацией встроен контекстный просмотрщик Markdown, поддерживающий заголовки, списки, ссылки, подсветку блоков кода и псевдографическое оформление таблиц.

Эмулятор терминала Windows ConPTY в MTN2
Вывод командной строки PowerShell через встроенный эмулятор терминала ConPTY.

Безопасность и целостность данных подкрепляются встроенными диалогами для расчета контрольных сумм, где тщательно прорисованы тени, псевдографические рамки интерфейса и элементы управления.

Производительность и дальнейшее развитие

Системные замеры показывают отличные результаты: в состоянии покоя интерфейс потребляет 0 кадров в секунду, не нагружая GPU впустую, а сборка кадра через Skia занимает в среднем всего около 3.4 миллисекунды. Потребление оперативной памяти при старте составляет около 20.9 МБ, а в активной сессии с десятком вкладок не превышает 41 МБ. Проект не требует инсталлятора, не засоряет системный реестр и легко переводится в портативный режим с помощью файла-маркера.

Встроенный просмотрщик документов Markdown
Отображение форматированного текста, заголовков и таблиц в окне просмотрщика.

На текущем этапе альфа-версия MTN2 уже закрывает подавляющее большинство ежедневных задач: от работы с архивами как с обычными папками и быстрого поиска до пакетных операций и запуска пользовательских сценариев. В планах — портирование терминального слоя под Linux и macOS, расширение поддержки плагинов и дальнейшая оптимизация кодовой базы.

Диалоговое окно расчета контрольных сумм
Диалог вычисления хэш-сумм с полупрозрачной подложкой и рамками.
01.