The developer responsible for KMSCON
is seeking comments on a proposed design for virtual terminals and multiple seats that relies upon Wayland as a system-wide compositor.
David Herrmann, the developer responsible for this work, has for months been on a quest to kill CONFIG_VT
for virtual terminals from the Linux kernel. Having written KMSCON, a DRM-based terminal emulator, he's planning to write some user-space VT logic similar to what's in the kernel. He wants to support multiple virtual terminals for each seat. At present, systemd doesn't differentiate or allow assigning different VTs to different seats nor is there a way of making the kernel VTs multi-seat capable.
With Herrmann communicating with Lennart, they came up with some ideas, including the use of Wayland as a system-wide compositor for handling all video input. One of his ideas is having a global deaemon on a DBus like system to register/deregister clients and clients can request changing the currently active VT. This design would be similar to what's currently done by the Linux kernel. There's also a more limited option of just having common Dbus names for each seat and when a VT claims the particular name any other client requesting access will be placed in a waiting queue. It would also be possible to extend the Linux kernel VT API to be seat-capable, but David beleives already this is the worst idea.
Lastly, David Herrmann is also looking for Wayland to help here. He is exploring the idea of using Wayland as a central VT-master that runs a central compositor on each seat that acquires the video and input devices for each seat. The compositor would run all clients in full-screen mode and the VT application would then run on top of Wayland. It's not guaranteed they will end up going with this approach as it's the most complex and there's some other engineering hurdles to overcome, but it's what currently is being discussed.
For those wanting more information or to jump in on the discussion, see the Wayland development list