kmscon 10.0

Состоялся выпуск kmscon 10.0 — эмулятора терминала, который создан в качестве замены ядерной консоли. Вместо подсистемы ядра vt kmscon использует KMS и реализует необходимую функциональность в юзерспейсе.
С помощью такого подхода решается проблема низкого качества кода в подсистеме vt и отсутствия у сопровождающих опыта в нем, что делает практически невозможным дальнейшее развитие этой подсистемы.
Возможности kmscon:
- возможность настройки всех опций с помощью аргументов командной строки или файла конфигурации;
- возможность задавать устройство для вывода. Поддерживаются устройства fbdev и DRM;
- возможность задавать видеорежим (разрешение и ориентацию экрана);
- возможность настроить кастомную цветовую схему;
- возможность настроить аппаратное ускорение графики при помощи GLESv2;
- возможность автоматического отключения дисплея по таймауту в случае бездействия;
- поддержка переключаемых по хоткею сессий (аналог VT-сессий), максимальное число сессий по умолчанию — 50;
- рендеринг современных шрифтов с поддержкой хинтинга, субпиксельного сглаживания и всех остальных фич, предоставляемых библиотеками freetype и pango. Также поддерживаются GNU Unifont и стандартные шрифты 8×16. В полной мере реализован Unicode;
- возможность задавать размеры шрифтов, в том числе по хоткею во время выполнения, благодаря чему решается проблема их отображения на HiDPI-дисплеях;
- интеграция с libxkbcommon, в том числе возможность задать модель и раскладку клавиатуры;
- поддержка мыши. Можно использовать как софтверный, так и аппаратный курсор;
- поддержка прокрутки текста (scrollback buffer), как по хоткеям так и с помощью колесика мыши. При использовании мыши можно настроить естественную прокрутку.
Как это работает
kmscon запускается при старте системы как обычный сервис при помощи вашей системы инициализации.
Если kmscon видит VT-устройства в системе, то он находит свободное и занимает его. Благодаря этому на обычных системах (с задействованным VT) можно переключаться на kmscon как на обычную ядерную консоль по хоткею Ctrl+Alt+F.
Если на VT-устройстве, которое вы хотите выделить для kmscon, уже работает какой-то сервис, например getty, то этот сервис нужно остановить. Это настраивается в зависимости от системы, например в случае с Busybox надо отредактировать /etc/inittab.
Если подсистема VT не задействована (то есть в конфиге ядра указано CONFIG_VT=n. Возможность чего собственно и является целью разработки kmscon), то kmscon просто занимает указанное в конфиге устройство вывода. После чего нужно пользоваться его внутренними сессиями.
GUI-приложения, такие как X-сервер, должны запускаться из сессии kmscon при помощи специальной программы kmscon-launch-gui. Это необходимо для правильной передачи владения ресурсами, в частности устройством вывода.
Изменения в версии 10.0
- добавлена генерация специфичного для kmscon файла с базой terminfo. Переменную окружения
TERM=kmsconможно задать как в шелле, так и с помощью CLI-аргумента или опции конфига. - поддержка шрифтов с переменной шириной, а не только моноширинных.
- поддержка получение ресурсов (таких как DRM-устройство) через libseat. Это в перспективе позволит запускать kmscon в пользовательской сессии, а не только от рута, как сейчас.
>>> release notes
Linux.org.ru прочитано 1094 раза
