Took place The release of kmscon 10.0 - a terminal emulator designed as a replacement for the kernel console. Instead of the vt kernel subsystem, kmscon uses KMS and implements the required functionality in user space.
This approach addresses the issue of poor code quality in the vt subsystem and the lack of experience among maintainers, making it nearly impossible to further develop this subsystem.
Features of kmscon:
- the ability to configure all options via command line arguments or a configuration file;
- the ability to set the output device. Supports fbdev and DRM devices;
- the ability to set the video mode (screen resolution and orientation);
- the ability to configure a custom color scheme;
- the ability to configure hardware graphics acceleration using GLESv2;
- automatic display shutdown after a timeout in case of inactivity;
- support for switchable hotkey sessions (analogous to VT sessions), with a default maximum number of sessions set to 50;
- rendering of modern fonts with support for hinting, subpixel smoothing, and all other features provided by the freetype and pango libraries. GNU Unifont and standard 8×16 fonts are also supported. Unicode is fully implemented;
- the ability to set font sizes, including via hotkeys during execution, which resolves their display issues on HiDPI displays;
- integration with libxkbcommon, including the ability to set keyboard model and layout;
- mouse support. Both software and hardware cursors can be used;
- support for text scrolling (scrollback buffer), both via hotkeys and using the mouse wheel. Natural scrolling can be configured when using a mouse.
How it works
kmscon starts at system boot as a regular service using your initialization system.
If kmscon detects VT devices in the system, it finds and occupies a free one. This allows switching to kmscon as a regular kernel console using the hotkey Ctrl+Alt+F on normal systems (with VT enabled).
If there is a service running on the VT device you want to designate for kmscon, such as getty, that service needs to be stopped. This can be configured based on the system; for example, in the case of Busybox, you need to edit /etc/inittab.
If the VT subsystem is not utilized (meaning CONFIG_VT is set to n in the kernel config, which is the purpose of developing kmscon), then kmscon simply occupies the output device specified in the configuration. After that, you need to use its internal sessions.
GUI applications, such as the X server, must be launched from a kmscon session using the special kmscon-launch-gui program. This is necessary for the correct transfer of resource ownership, particularly the output device.
Changes in version 10.0
- a specific terminfo database file generation for kmscon has been added. The environment variable TERM=kmscon can be set either in the shell or using a CLI argument or config option.
- support for variable-width fonts, not just monospace ones.
- support for acquiring resources (such as the DRM device) through libseat. This will eventually allow kmscon to run in a user session, rather than only as root, as it does now.
Source: linux.org.ru
