TUI (Text User Interface) — текстовый пользовательский интерфейс, форма взаимодействия человека с компьютером, где информация отображается и ввод осуществляется исключительно через текстовые символы в среде терминала или консоли.
TUI занимает промежуточное положение между:
- CLI (Command Line Interface — интерфейс командной строки): простой ввод команд построчно;
- GUI (Graphical User Interface — графический интерфейс): полноценное визуальное взаимодействие с иконками, окнами и мышью.
Ключевые характеристики
- Текстовое представление. Вся информация выводится в виде символов (буквы, цифры, псевдографика).
- Использование всего экрана. В отличие от CLI, TUI задействует всю область терминала для интерактивного отображения.
- Интерактивные элементы. Поддерживает имитацию графических компонентов:
- меню и выпадающие списки;
- кнопки и переключатели;
- флажки (checkboxes);
- полосы прокрутки;
- оконные панели;
- диалоговые окна.
- Управление. Осуществляется преимущественно клавиатурой (включая «горячие клавиши»), иногда — мышью.
- Низкие требования к ресурсам. Минимальное потребление CPU, памяти и пропускной способности сети.
- Монохромность или ограниченная палитра. Обычно используется 16 или 256 цветов.
Преимущества TUI
- Эффективность для опытных пользователей: быстрый клавиатурный ввод без необходимости перемещать курсор мыши.
- Автоматизация: возможность скриптинга и интеграции в цепочки команд.
- Удаленный доступ: отлично работает через SSH и Telnet даже на медленных соединениях.
- Стабильность: меньше подвержен сбоям по сравнению с графическими системами.
- Универсальность: работает на любом устройстве с терминалом.
- Скорость: мгновенный отклик без отрисовки графики.
Недостатки TUI
- Крутая кривая обучения: требует запоминания команд и сочетаний клавиш.
- Ограниченная наглядность: отсутствие иконок, изображений, сложных визуальных эффектов.
- Проблемы доступности: сложности для пользователей с нарушениями зрения.
- Ограничения в отображении: невозможность работы с бидирекционным текстом, сложными шрифтами.
- Меньшая интуитивность: новичкам сложнее освоиться без визуальных подсказок.
Технические основы реализации
Для создания TUI используются специальные библиотеки:
- ncurses (Unix‑подобные системы) — стандартная библиотека для управления текстовым дисплеем.
- Turbo Vision (для DOS) — объектно‑ориентированная библиотека оконного интерфейса.
- libtcod — популярна в разработке roguelike‑игр.
- Windows Console API (для Windows) — нативные функции работы с консолью.
Эти библиотеки позволяют:
- позиционировать курсор в любой точке экрана;
- создавать оконные панели;
- обрабатывать ввод с клавиатуры;
- управлять цветами текста и фона;
- реализовывать меню и формы ввода.
Примеры программ с TUI
- Редакторы текста:
- Vim / Vi — мощный редактор с модальным вводом.
- Nano — простой консольный редактор.
- Файловые менеджеры:
- Midnight Commander (mc) — двухпанельный менеджер.
- Ranger — современный файловый менеджер.
- Системные утилиты:
- htop — монитор процессов с интерактивным интерфейсом.
- alsamixer — аудиомикшер.
- Менеджеры пакетов:
- aptitude (Debian/Ubuntu) — TUI‑оболочка для APT.
- Браузеры:
- Lynx — текстовый веб‑браузер.
- Links — браузер с поддержкой фреймов.
- Игры:
- Roguelike‑игры (например, NetHack, Dungeon Crawl Stone Soup).
- Утилиты настройки:
- dialog — инструмент для создания диалоговых окон в скриптах.
- утилиты конфигурации серверов и сетевого оборудования.
Историческая справка
TUI эволюционировал из:
- Телетайпов (1950–60‑е) — электромеханических печатных устройств.
- Текстовых терминалов (1970‑е) — CRT‑дисплеев (например, DEC VT100).
- Эмуляторов терминалов (1980‑е и далее) — программных решений (xterm, PuTTY, Windows Terminal).
Где применяется сегодня
- администрирование серверов (Linux/Unix);
- встраиваемые системы и IoT‑устройства;
- сетевое оборудование (Cisco IOS, Juniper);
- разработка ПО (отладка, сборка);
- ретро‑вычисления и хобби‑проекты;
- ресурсоограниченные среды (старые ПК, тонкие клиенты);
- игры в жанре roguelike.