From the project's git repository:
- Kmscon is a simple terminal emulator based on linux kernel mode setting. It is an attempt to replace the in-kernel VT implementation with a userspace console.
Kmscon can function as a drop-in replacement for the in-kernel linux-console. Features include:
- Full vt220 to vt510 implementation.
- Full internationalization support:
- Kmscon supports printing full Unicode glyphs, including the CJK ones.
- Kmscon provides internationalized keyboard handling through libxkbcommon, thus allowing it to use the full range of keyboard layouts supported in X keyboard.
- Hardware accelerated rendering.
- Multi-seat capability.
Despite its name, KMS is not a hard requirement for kmscon. Kmscon supports the following video backends: fbdev (Linux fbdev video backend), drm2d (Linux DRM software-rendering backend), drm3d (Linux DRM hardware-rendering backend). Make sure one of them is available on your system.
Normally, there is a special systemd configuration for tty1. To be conservative, you can continue to run the traditional agetty on tty1 and only run kmscon on all the other virtual terminals. Or you can run kmscon on both tty1 and the other VTs.
To enable kmscon on tty1, run:
# systemctl disable firstname.lastname@example.org # systemctl enable email@example.com
To enable kmscon on all virtual terminals, run:
# ln -s /usr/lib/systemd/system/kmsconvt\@.service /etc/systemd/system/autovt\@.service
This will make
kmsconvt@.service instead of
getty@.service for new VTs. Additionally, all other systemd units that use
getty@.service will not be affected by this change.
If kmscon cannot start for whatever reason, this unit will cause
getty@.service to be started instead. Furthermore, if no VTs are available, this unit will not start anything.
Kmscon supports rendering CJK characters through the default font engine. However, has to be globally configured to map the monospace font alias to proper CJK fonts. For Chinese users, the following template is provided and proved to result in satisfactory Chinese characters rendering:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match> <test name="family"><string>monospace</string></test> <edit name="family" mode="prepend" binding="strong"> <string>DejaVu Sans Mono</string> <string>WenQuanYi Micro Hei Mono</string> </edit> </match> </fontconfig>
You need to haveand , both available from the official repositories, installed.
- You may want to add
/etc/kmscon/kmscon.confif you have problems with switching between Xorg and kmscon.
The file and folder are not part of the package and therefore have to be created manually. Another possibility would be editing the systemd service file.