Я давно пишу на Go, но раньше у меня был довольно плотный опыт во фронтенде. Поэтому, когда я захожу в терминальные интерфейсы, я всё ещё ожидаю какого-то базового UX — чтобы было понятно, что происходит, что можно нажимать, и что именно ты сейчас делаешь.

Но каждый раз, когда мне нужно было поработать с TUI — особенно в задачах, вроде удаления файлов по фильтру, — я чувствовал, как мой мозг вытекает через уши.

Мои страдания

Недавно мне просто нужно было удалить тяжелые файлы, и всякий мусор из, кроме пары вложенных папок. Казалось бы, простая задача. Я поставил несколько популярных утилит для этой цели (не будем называть имён, вы и так их знаете), и каждый раз ловил фрустрацию.

— Что это за управление?
— Почему мышка не работает?
— Почему никакой подсказки, что вообще делает эта кнопка?

Это не UX. Это терминальное шаманство.

TUI ≠ для избранных

Вот в чём беда: большинство TUI-инструментов будто специально создаются для хардкорных пользователей. Тех, кто жил в vim больше, чем в спальне. Это окей — я уважаю таких людей. Но я и сам не новичок, и мне всё равно неудобно. А теперь представьте, что вы обычный человек, который просто хочет подчистить пару гигов мусора…

Вы открываете инструмент, и там: тёмный экран, какие-то символы, реагирующие на клавиши (но не те, которые вы пробуете), отсутствие мышки, отсутствие подсказок и ощущение, будто вы случайно запустили BIOS.

Я не выдержал и сделал Deletor

TUI/CLI утилиту для менеджмента файлов и удаления. И подошёл к ней не как системный программист, а как фронтендер, у которого болит от странных интерфейсов. С той самой мыслью: “пользователь не должен страдать”. Я хотел, чтобы всё было интуитивно, сразу понятно. Чтобы ты открыл, и не возникало вопроса — “а что тут нажимать?”. Навигация — привычная: стрелки, таб, даже мышка работает. При этом, если хочется автоматизировать — тоже не проблема. Deletor умеет работать через CLI

Проект open-source, можно заглянуть в код, посмотреть, как устроено, и, если захочется — поучаствовать.

? github.com/pashkov256/deletor

TUI и CLI-инструменты не должны пугать — они могут быть понятными с первых секунд. Нужно просто проектировать их с учётом обычных пользователей: показывать, что происходит, давать интерактивность, не перегружать. Если ты делаешь инструмент — делай так, чтобы им хотелось пользоваться, а не гуглить мануалы.

Комментарии (21)


  1. ShefEr
    11.06.2025 16:35

    Круто, если есть опция отключения emoji иконок


    1. temaweb10 Автор
      11.06.2025 16:35

      Спасибо за идею, реализую


  1. whocoulditbe
    11.06.2025 16:35

    Xterm, конечно же, не осилил иконки:

    В более продвинутых терминалах (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, десятки их.


    1. temaweb10 Автор
      11.06.2025 16:35

      Иконки не видно из за кодировки


      1. 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


        1. temaweb10 Автор
          11.06.2025 16:35

          Хорошо подметили,спасибо. Проект open source можете поучаствовать :)))


        1. gravicappa
          11.06.2025 16:35

          Справедливости ради: на сервере терминалы обычно не запускают (хотя там должен присутствовать terminfo нужного терминала). А на рабочем месте может быть что угодно, да.


          1. nin-jin
            11.06.2025 16:35

            screen разве не запускает терминал на сервере?


            1. gravicappa
              11.06.2025 16:35

              Запускает, его я упустил. Но насколько он полноценный, я не смотрел.


  1. nin-jin
    11.06.2025 16:35

    Вот и выросло поколение, не заставшее Turbo Vision.


  1. HomeMan
    11.06.2025 16:35

    sudo apt install mc

    или

    sudo dnf install mc


    1. temaweb10 Автор
      11.06.2025 16:35

      Он жутко выглядит для новичков


      1. TaskForce141
        11.06.2025 16:35

        Субъективно. Никто не заставляет оставаться новичком, и можно аргументировать, что условному новичку будет лучше выбрать инструмент с богатым функционалом (чтобы не приходилось изучать и пользоваться несколькими для разных задач), который при этом является распространенным (при возникновении проблем будет выше шанс получить нужную информацию).

        Лично у меня в памяти отложились воспоминания о том, как отец на обозреватель ругался и вместо него предпочитал TotalCommander для выполнения даже самых простых операций. Простота использования и удобство в ряде простых случаев не всегда оказываются достаточными аргументами в пользу выбора инструмента.

        В любом случае гораздо интереснее читать про подобное, а не пролистывать десятки статей про ИИ подряд.


      1. HomeMan
        11.06.2025 16:35

        Тогда ЭТО мне кажется просто замечательно.

        Для новичков вот ЭТО, а для старых злых дядек - МС, или ФАР, или прости Господи НортонКоммандер.


  1. DustCn
    11.06.2025 16:35

    Midnight Commander вам в руки и удаляйте...


  1. Kahelman
    11.06.2025 16:35

    ChatGPT и просите написать команду с find -delete. Если сами не освоили.


    1. Free_ze
      11.06.2025 16:35

      И огребите неочевидных проблем от чего-то вроде файлов с пробелами в именах.


  1. Ak-47
    11.06.2025 16:35

    Прочитал и стало жутко..
    Нет, Вы молодец, никаких претензий и хейта..

    Но все равно как-то не по себе..


  1. sten65
    11.06.2025 16:35

    вполне нормальный подход. tui весьма облегчает понимание и экономит время. порой mc избыточен, а вот tui для конкретной задачи это хорошо :)


  1. jingvar
    11.06.2025 16:35

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


    1. temaweb10 Автор
      11.06.2025 16:35

      https://github.com/pashkov256/deletor там представлен видео работы софта