On 15/11/2025 18:36, Mateus Rodrigues Costa wrote:


Em qui., 13 de nov. de 2025, 11:35, Allison King via devel-announce <[email protected] <mailto:devel- [email protected]>> escreveu:

    Wiki: https://fedoraproject.org/wiki/Changes/UseKmsconVTConsole
    <https://fedoraproject.org/wiki/Changes/UseKmsconVTConsole>

    Discussion Thread: https://discussion.fedoraproject.org/t/172602
    <https://discussion.fedoraproject.org/t/172602>

    **This is a proposed Change for Fedora Linux.**
    This document represents a proposed Change. As part of the Changes
    process, proposals are publicly announced in order to receive
    community feedback. This proposal will only be implemented if
    approved by the Fedora Engineering Steering Committee.

    == Summary ==
    This change is to replace the kernel console '''fbcon''' with the
    userspace console '''kmscon''' in Fedora, to provide an enhanced and
    more secure console for Fedora users.
    The long term goal is also to deprecate fbcon/fbdev emulation in the
    kernel, and this is the first step in this direction.
    == Owner ==
    * Name: [[User:jfalempe| Jocelyn Falempe]]
    * Email: <[email protected] <mailto:[email protected]>>
    == Detailed Description ==
    '''fbcon''' is a terminal emulator in the kernel, which is not well
    maintained (it lost scrolling support a few years ago due to a CVE),
    and requires a fbdev emulation layer in the kernel, as all GPU
    drivers are using the newer drm interface. It still requires
    userspace executable like getty and bash to be useful.
    '''kmscon''' is a simple terminal emulator based on linux kernel
    mode setting (KMS). It can replace fbcon for VT console, and provide
    better keyboard support, and better security.
    This change will do the following:
    Install kmscon by default, and update the symbolic link /usr/lib/
    systemd/system/[email protected] to point to [email protected], to
    start kmscon by default when switching VT.
    kmscon should be the default also on non-graphical installation, as
    it doesn't require any graphic library (only libdrm, to access the
    framebuffer).
    This change won't affect the installation, the boot process (like
    encryption password fallback), as fbcon will still be compiled in
    the kernel.
    User can still revert to fbcon if they want, or if kmscon has issue
    on their setup.
    If kmscon fails to launch, it will fallback to getty/fbcon.
    Currently kmscon depends on opengl/mesa, because it has an optional
    opengl backend. But we don't want that on non-graphical server
    installation. I will split the package in two, having something like
    kmscon and kmscon-gl for the optional gl renderer.
    == Feedback ==
    == Benefit to Fedora ==
    kmscon is more configurable, and has more features than fbcon:
    * Uses xkbcommon for keyboard layout, so it supports multiple
    layout, and switching between them with configurable shortcut.
    * Has better unicode support.
    * Can use pango for font rendering, and has better compatibility
    with double-width character https://github.com/Aetf/kmscon/pull/135
    <https://github.com/Aetf/kmscon/pull/135>.
    * Scrolling.
    * Better security, as it's a userspace program, compared to fbcon
    running in the kernel.
    * A crash in kmscon will make the systemd service to restart it. A
    crash in fbcon triggers a kernel panic.
    Before F44 it may also have these additional features:
    * Rotation support (with keyboard shortcut to rotate it at runtime)
    https://github.com/Aetf/kmscon/pull/147 <https://github.com/Aetf/
    kmscon/pull/147>
    * Basic mouse/touchpad support, with copy/paste https://github.com/
    Aetf/kmscon/pull/149 <https://github.com/Aetf/kmscon/pull/149>

    == Scope ==
    * Proposal owners:
    ** Add kmscon in default installation target.
    ** Enable kmscon systemd service, for all tty, by changing the
    symbolic link /usr/lib/systemd/system/[email protected], to point to
    [email protected]
    ** Split the kmscon package in 2, to avoid direct dependencies on egl.
    * Trademark approval: N/A (not needed for this Change)
    * Alignment with the Fedora Strategy:

    == Upgrade/compatibility impact ==

    == Early Testing (Optional) ==

    == How To Test ==
    Press Ctrl+alt+F3 to switch to the VT console.
    Login and check if it's running kmscon with ''ps aux | grep tty3''
    Check that you can scroll back with page up/page down.
    Check that you can increase the font size with "ctrl +" and decrease
    with "ctrl -"

    == User Experience ==

    ==== Improvements ====
    * The look & feel of the VT console, will be much better.
    * Users will be able to configure special fonts, and use more
    unicode characters.
    * Users will have the same keyboard layout has what they have in
    graphical environment. (Currently the kernel keyboard layout are
    different).
    * Users will be able to scroll in the console.

    ==== Caveats ====
    * Starting graphical application from the console (like "startx")
    won't work, but you can work around it by using the script ''kmscon-
    launch-gui startx''

    == Dependencies ==
    No dependencies.

    == Contingency Plan ==
    It should be easy to revert, just not install kmscon, and fbcon with
    getty service will be the default.

    == Documentation ==
    N/A (not a System Wide Change)

    == Release Notes ==
-- _______________________________________________
    devel-announce mailing list -- devel-
    [email protected] <mailto:devel-
    [email protected]>
    To unsubscribe send an email to devel-announce-
    [email protected] <mailto:devel-announce-
    [email protected]>
    Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/
    project/code-of-conduct/ <https://docs.fedoraproject.org/en-US/
    project/code-of-conduct/>
    List Guidelines: https://fedoraproject.org/wiki/
    Mailing_list_guidelines <https://fedoraproject.org/wiki/
    Mailing_list_guidelines>
    List Archives: https://lists.fedoraproject.org/archives/list/devel-
    [email protected] <https://lists.fedoraproject.org/
    archives/list/[email protected]>
    Do not reply to spam, report it: https://pagure.io/fedora-
    infrastructure/new_issue <https://pagure.io/fedora-infrastructure/
    new_issue>


Man, kmscon was very cool when I tested it a long time ago when I was still a Arch Linux user. It was still very primitive at the time, so I eventually gave up on it =\

Still, assuming a not totally borked system (at least not enough to trigger the emergency mode), I mostly care about about opening a VT in these cases:

1. My graphical session is broken on any way
2. I need to do some operation that would either require or which I should prefer to not have a open graphical session 3. I want to run something very quickly right after boot but I don't want to go through the login -> get to graphical session -> open Terminal

Assuming kmscon works for those cases for me, I will surely use it.

Yes, kmscon works for 1 and 2. I didn't test case 3 yet, the old way to do that was with "init 3", but that has changed with systemd.
But I think the autovt link should do the trick.


What interests me really is about fonts.
I got sold about the ligatures on programming fonts and have adopted "Fira Code" as my main monospace font for terminals and coding IDEs.

Unfortunately, IIRC GNOME's vte library has some limitations around ligatures, which has prevented me to use it on gnome-terminal and Pyxis.
So, does kmscon support or has planned support for ligatures?

kmscon is very basic, and handle each character independently, so it can't support ligature without a complete rewrite. Looking in the terminal compatibility list, Konsole does support ligature. So one way to have that feature in a VT, is to use userspaceVT with Konsole/Kwin, instead of Kmscon. I'm adding userspaceVT to Fedora too, but it's not ready yet.

You can test it with my copr repository https://copr.fedorainfracloud.org/coprs/jfalempe/Userspacevt/

In any case, since I assume the 3 scenarios I mentioned shouldn't break, I will test it. But if ligatures are supported it will be a great improvement over the traditional VT!

Thanks for your time,
Mateus Rodrigues Costa

Best regards,

--

Jocelyn

--
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to