xtermcontrol 3.11

После более полутора лет затишья состоялся выпуск 3.11 консольной утилиты xtermcontrol для просмотра и динамического управления свойствами xterm: цветами, заголовком, шрифтом и размером.
Поддерживаются сворачивание и разворачивание окна, перемещение на передний или задний план, максимизация размера и восстановление в прежний вид, а также сброс настроек.
А опытным пользователям xtermcontrol позволяет вводить любые последовательности команд управления xterm.
Проект написан на языке C и распространяется по лицензиям GNU GPL 2+.
Изменения:
- исправлена проблема с пропусканием OSC-последовательностей в tmux, возникшая после перехода на ST-терминаторы в версии 3.5; настройка цветов и заголовка снова работает в tmux;
- исправлены зависания и падение при получении усечённых или некорректных ответов на запросы; вместо этого выдаётся сообщение об ошибке. Контрольные символы удаляются из полученных значений для предотвращения внедрения злонамеренных экранирующих последовательностей;
- теперь
--get-titleпринимает ответы, завершающиеся BEL; - выход с ненулевым кодом ошибки при сбое запроса и сообщение о недопустимых аргументах
--geometryвместо их игнорирования; - теперь опции применяются в том порядке, в котором они указаны в командной строке, например
--reset --bg=redсначала сбрасывает настройки, а затем устанавливает цвет; - опции
--forceи--verbose, используемые отдельно, больше не подавляют использование файла конфигурации; - при проверке
TERMпринимаются значенияTERMизtmuxилиTMUX; - при использовании
--file~раскрывается только в путях~/; также сообщение об отсутствии переменнойHOMEвместо некорректного поведения; - открытие
/dev/ttyдля управления терминалом, что обеспечивает перенаправление всех потоковstdin/stdout/stderr. Восстановление настроек терминала при завершении работы сигналом; - удаление конечных пробелов из значений конфигурации и выдача предупреждения при пустых значениях. Сообщение об ошибках в конфигурационном файле с указанием фактической причины, а не всегда с кодом
ENOENT.
>>> Видео
>>> Исходный код на GitHub
>>> Подробности на GitHub
