Мечта написать коммандер, использующий максимум возможностей тсконфы, появилась ещё лет 6 назад, с момента приобретения пентевы. Покончив с демами и гифтами, потренировался в написании системок на The Viewer’е. После немного отдохнул и в сентябре 19-го принялся за коммандер. Хотя и прошло уже больше двух лет, активно коммандер писался лишь год с небольшим. Сделано много, но впереди ещё больше.
Годовалое видео
https://youtu.be/KkMABuLUt3Q
Мы делаем упор на удобство, скорость и закладываем широчайшие возможности на будущее.
Что сделано:
- Коммандер работает в графрежиме цвет на точку с тайлами.
- Быстрый сёрфинг по карте. Тяжелые папки уровнем выше запоминаются – мгновенный выход из папки. При заходе в ту же папку на соседней панеле ненужной загрузки не происходит.
- Фоновая сортировка файлов.
- Русские имена в каталоге (на видео ещё не пофиксено)
- Поиск файла в папке.
- Folder tabs (быстрый переход в нужную папку)
- Уже можно писать простые плагины (написаны ZXGfxViewer и TextViewer)
Что в планах:
- Окна. А это менюшки, контекстные меню, настройки…
- Добавление управления от мыши
- Что-то типа Spotlight из macOS. Смесь Spotlight и CLI
- Все файловые операции (сейчас только чтение)
- Доработка API для плагинов.
- Поддержка цветовых схем и скинов.
- Интерфейс для открытия/сохранения файлов из других программ.
C помощью API можно будет написать плагин который будет:
- *Вьювером* самой разнообразной графики
- *Плеером* **(beeper, ay, digital)**. А в случае трековой AY-музыки, то будет играть её в фоне.
- Просматривать текстовые файлы. Даже в Unicode. Даже сорцы ассемблеров (xas, alasm…)
- Реализовывать доступ к другим файловым системам. То есть оперировать содержимым файловых образов (TRD, SCL, TAP, ZIP, ISO, Hrip, etc). Да хоть обычный SCR покажет как папку с 768 файлами(знакоместами)
- Работать с FDD (TR-DOS, MS-DOS, IS-DOS)
- Выполнять дополнительные файловые операции (Move в TR-DOS, объединять/разделять файлы, искать графику на диске с битым каталогом)
- Монтировать TRD,SCL,TAP
- Конвертировать ̶п̶у̶с̶т̶о̶е̶ ̶в̶ ̶п̶о̶р̶о̶ж̶н̶е̶е̶ ̶ одно в другое
- Архивировать
- Запускать файлы (SNA, SPG, $C, а Basic/C-файлы прямо из TRD-образа)
- Работать с Zi-Fi
- Делать трансферинг ̶р̶е̶а̶л̶ь̶н̶о̶с̶т̶и̶ ̶ файлов с PC на ZX-Evo с помощью Zi-Fi (вот здесь я ничего не знаю, но надеюсь)
- Использовать интерфейс Spotlight
- Расширять сортировку файлов. Сейчас она запускается только если в папке меньше 4096 записей. Автоматически расширенная сортировка по заходу в папку вызываться не будет, но будет по запросу из Spotlight. Варианты расширения - работать с бóльшим количеством файлов, или сортировать по другим полям(дата создания, размер файла и др.), в обратном порядке.
- Индексировать файловую систему и затем предоставлять быстрый глобальный поиск
- Самостоятельной программой. Но будет использовать интерфейс для загрузки/сохранения файлов. Например
- Hex-Editor’ом, viewer’ом и файловым анализатором (показывать поля разнообразных форматов)
- Gfx, Text, Music Editor'ом
- Редактором уровней.
Примеры использования Spotlight
Settime/Setdate
Установка системного времени/даты. (*settime 12:34:56*; *setdate 1.3.21*)
Показ подсказки для набора hh:mm:ss, dd.mm.yy
Whois
Поиск информации о ком-либо по базе. (*whois trefi*).
Press
Поиск по базе статей из спектрум-прессы
Demo
Поиск по базе дем. (*demowith chunks/multicolor/digital/border*; *demoby kpacku/tbk/digital reality*; *demofrom cc/cafe/enlight*; etc)
Seek
Глобальный поиск файлов. Предварительно нужно проиндексировать всю файловую систему – *indexfs*
Create
Для создания файлов (*create trd*). Дублирование функционала из контекстного меню
Rename/Group rename
*ren* – запуск переименователя для выделенных файлов. Если выделенных нет, то для файла/папки под курсором
App
Быстрый запуск приложений. (*app ted*)
Калькулятор
(34 * 938; 2^12; 0x1fe9fa in dec)
Select
Выделение файлов по шаблону (`select *.pt3`;`select IMG_*.jpg`). По типу (`select \gfx (zxgfx, pcgfx)`), которые можно создавать самому (`select \+`)
File cutter
Разрезатель файлов. (Идея из одной статьи Ивана Рощина)
Update
Обновление информации о плагинах.
Screensaver
Запуск нужного скринсейвера. Без аргументов – случайный.
Fast Folder Opening
Быстрое открытие очень больших папок путём их сохранения на SDcard в готовом для коммандера виде. Нецелесообразно использовать для папок меньше ~5000 файлов и для папок с частым изменением её содержимого
*fdir add/delete* – добавить текущую папку
*fdir list* – показать список добавленных папок
Когда релиз?
Выкладывать версии начну после добавления самого необходимого:
– маунтинг TRD/SCL/TAP
- запуск SNA
- Муз.плагин (требуется большая переделка из built-in)
Зачем этот пост?
Разработка проекта такого масштаба быстро и легко идти не может. Особенно если программист всего один и он решает все возникающие вопросы по всё усложняющейся архитектуре. А для меня это всегда самый энергозатратный и не быстрый процесс.
Поэтому всех глубоко заинтересовавшихся я приглашаю принять участие в разработке The Commander’а. Самая нужная помощь сейчас – помощь в этих самых архитектурных моментах. Да и вообще, вопросов разного рода тут предостаточно. От помощи кодом тоже не откажусь, но тут есть нюансы.
Стучитесь в телеграм @trefi