Я давно пишу на Go, но раньше у меня был довольно плотный опыт во фронтенде. Поэтому, когда я захожу в терминальные интерфейсы, я всё ещё ожидаю какого-то базового UX — чтобы было понятно, что происходит, что можно нажимать, и что именно ты сейчас делаешь.
Но каждый раз, когда мне нужно было поработать с TUI — особенно в задачах, вроде удаления файлов по фильтру, — я чувствовал, как мой мозг вытекает через уши.
Мои страдания
Недавно мне просто нужно было удалить тяжелые файлы, и всякий мусор из, кроме пары вложенных папок. Казалось бы, простая задача. Я поставил несколько популярных утилит для этой цели (не будем называть имён, вы и так их знаете), и каждый раз ловил фрустрацию.
— Что это за управление?
— Почему мышка не работает?
— Почему никакой подсказки, что вообще делает эта кнопка?
Это не UX. Это терминальное шаманство.
TUI ≠ для избранных
Вот в чём беда: большинство TUI-инструментов будто специально создаются для хардкорных пользователей. Тех, кто жил в vim
больше, чем в спальне. Это окей — я уважаю таких людей. Но я и сам не новичок, и мне всё равно неудобно. А теперь представьте, что вы обычный человек, который просто хочет подчистить пару гигов мусора…
Вы открываете инструмент, и там: тёмный экран, какие-то символы, реагирующие на клавиши (но не те, которые вы пробуете), отсутствие мышки, отсутствие подсказок и ощущение, будто вы случайно запустили BIOS.
Я не выдержал и сделал Deletor
TUI/CLI утилиту для менеджмента файлов и удаления. И подошёл к ней не как системный программист, а как фронтендер, у которого болит от странных интерфейсов. С той самой мыслью: “пользователь не должен страдать”. Я хотел, чтобы всё было интуитивно, сразу понятно. Чтобы ты открыл, и не возникало вопроса — “а что тут нажимать?”. Навигация — привычная: стрелки, таб, даже мышка работает. При этом, если хочется автоматизировать — тоже не проблема. Deletor умеет работать через CLI
Проект open-source, можно заглянуть в код, посмотреть, как устроено, и, если захочется — поучаствовать.
? github.com/pashkov256/deletor
TUI и CLI-инструменты не должны пугать — они могут быть понятными с первых секунд. Нужно просто проектировать их с учётом обычных пользователей: показывать, что происходит, давать интерактивность, не перегружать. Если ты делаешь инструмент — делай так, чтобы им хотелось пользоваться, а не гуглить мануалы.
Комментарии (21)
whocoulditbe
11.06.2025 16:35Xterm, конечно же, не осилил иконки:
В более продвинутых терминалах (xfce4-terminal) не виден фокус на кнопках:
CLI mode is perfect for automation, scripting, and quick one-liners. It's essential for server environments, cron jobs, and integrating into larger toolchains.
На сервере практически всегда живут UNIX-утилиты - find, du, rm и прочие coreutils, которые умеют всё то же, что и ваша утилита. В конце концов есть midnight commander, который ещё и мышь поддерживает.
Если вам так нужен гуй - воспользуйтесь обычным файловым менеджером: nautilus, pcmanfm, qtfm, десятки их.
temaweb10 Автор
11.06.2025 16:35Иконки не видно из за кодировки
whocoulditbe
11.06.2025 16:35Неправда:
$ env | grep -i utf LANG=en_US.UTF-8 XTERM_LOCALE=en_US.UTF-8
На самом деле проблема в шрифтах, которые у меня в xterm не настроены.
Написание TUI-приложения - довольно сложная задача, в которой надо покрыть много-много edge cases. Если предполагается, что приложение будет работать на сервере (как написано в README), то тестировать нужно не на современных терминалах с поддержкой красивых шрифтов, а на самом минимуме вроде xterm, putty, termux.
Неплохая статья по теме: https://p.janouch.name/article-tui.html
temaweb10 Автор
11.06.2025 16:35Хорошо подметили,спасибо. Проект open source можете поучаствовать :)))
gravicappa
11.06.2025 16:35Справедливости ради: на сервере терминалы обычно не запускают (хотя там должен присутствовать terminfo нужного терминала). А на рабочем месте может быть что угодно, да.
HomeMan
11.06.2025 16:35sudo apt install mc
или
sudo dnf install mc
temaweb10 Автор
11.06.2025 16:35Он жутко выглядит для новичков
TaskForce141
11.06.2025 16:35Субъективно. Никто не заставляет оставаться новичком, и можно аргументировать, что условному новичку будет лучше выбрать инструмент с богатым функционалом (чтобы не приходилось изучать и пользоваться несколькими для разных задач), который при этом является распространенным (при возникновении проблем будет выше шанс получить нужную информацию).
Лично у меня в памяти отложились воспоминания о том, как отец на обозреватель ругался и вместо него предпочитал TotalCommander для выполнения даже самых простых операций. Простота использования и удобство в ряде простых случаев не всегда оказываются достаточными аргументами в пользу выбора инструмента.
В любом случае гораздо интереснее читать про подобное, а не пролистывать десятки статей про ИИ подряд.
HomeMan
11.06.2025 16:35Тогда ЭТО мне кажется просто замечательно.
Для новичков вот ЭТО, а для старых злых дядек - МС, или ФАР, или прости Господи НортонКоммандер.
Ak-47
11.06.2025 16:35Прочитал и стало жутко..
Нет, Вы молодец, никаких претензий и хейта..Но все равно как-то не по себе..
sten65
11.06.2025 16:35вполне нормальный подход. tui весьма облегчает понимание и экономит время. порой mc избыточен, а вот tui для конкретной задачи это хорошо :)
jingvar
11.06.2025 16:35А картинок нет? А вообще сложная обработка это конвеер, и визуализировать это странное решение, до регулярок погружаться не обязательно, пайп файнд греп много чего умеют, ну и ваши выборки можно и в файл отправлять для визуальной оценки.
temaweb10 Автор
11.06.2025 16:35https://github.com/pashkov256/deletor там представлен видео работы софта
ShefEr
Круто, если есть опция отключения emoji иконок
temaweb10 Автор
Спасибо за идею, реализую