Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Кастомизация консольного приложения в Linux

#cpp #linux #терминал


Пишу консольное приложение в Linux, вот и возникло два вопроса.

Во-первых, как программно развернуть эмулятор терминала на весь экран? Да, в Windows
это делается с помощью Win API, но что делать, к примеру, в Ubuntu?

Во-вторых, как мне поменять фон в терминале во время исполнения программы? Чтобы
у меня стояла не пользовательская тема, а предусмотренная мною?

Заранее спасибо.
    


Ответы

Ответ 1



В Linux нет понятия консольного приложения в смысле Windows. Приложение может иметь управляющий терминал, с которым у него связаны дескрипторы стандартного ввода, вывода и вывода ошибок, и от которого могут приходить сигналы. Терминал может быть физическим или виртуальным, в последнем случае он может поддерживать или не поддерживать изменение количества строк и управление положением своего окна в графической среде (если оно вообще есть). И это зависит от программы эмулятора терминала, которых в Linux великое множество и укаждого свои возможности, однако те из них которые запускаются из X-Window, например xterm, обычно поддерживают набор команд VT102, в котором предусмотрено некоторое управление окном через escape-последовательности (ищите dtterm), но обычно оно сокращено или отключено по-умолчанию или вовсе не реализовано. Включить у xterm его можно через X-ресурсы например при запуске эмулятора терминала: xterm -xrm 'xterm*allowWindowOps: true' Далее в открывшемся окне попробуйте: $ printf '\033[3;0;0t' # переместить окно в верхний левый угол $ printf '\033[9;1t' # во весь экран Если определена переменная окружения DISPLAY, значит программа запущенна из X-Window, и вы можете запустить свой эмулятор терминала, указав в аргументах нужную конфигурацию и вашу программу в нём. По аргументам см. man xterm, man gnome-terminal, man konsole и т.п.

Комментариев нет:

Отправить комментарий