Keyboard mapping
Jon Smirl
jonsmirl at gmail.com
Sun May 22 14:29:44 PDT 2005
On 5/22/05, Owen Taylor <otaylor at redhat.com> wrote:
> Remember, the end goal for Xgl isn't "X for console nuts" (no offense
> intended for any such reading this), but rather to replace the XAA-based
> X server.
>
> As such, XKB support and compatibility with the existing solutions
> people are using is much more important than matching the kernel's
> keymap files.
I would like to make Xgl multiuser from the beginning. To do this
several problems need to addressed. I'm sure the Ruby people can fill
in anything I missed.
I think we have the graphics drivers figured out now. My EGL drivers
are based on fbdev and DRI. This exposes the problem of multiple VGA
users. Benh is developing an in-kernel arbiter for VGA that will keep
everything sorted out. There are still issues with fbdev and DRI
fighting over memory management and IRQ control but we have solutions
for that.
My EGL driver also ignores the kernel VC mechanism. There is only one
VC in Linux which makes it incompatible with multiuser. In the future
something can be implemented that looks just like VCs but follows the
rules to make it compatible with Xgl.
Video detection can be achieved via kernel hotplug. Video cards have
PCI IDs. The IDs trigger the loading of the appropriate device
drivers. When XGL runs it can look in sysfs and see what hardware it
has.
Mouse is easy to deal with.
That leaves keyboard. The right solution here might be to go with the
X maps and work towards eliminating the in-kernel one. It is certainly
possible to implement something that looks just like kernel VCs but
that runs in user space. Running in user space means it can use
libraries in common with XGL.
Another part missing is console groups. There's no mechanism for
indicating that this video/mouse/keyboard is a group. You need this
when you have five video cards, mice and keyboards plugged in. The
console group also needs to be coordinated with PAM so that logging in
assigns ownership of the devices to the logged in user.
My current Xgl server code does not need root to run. That's important
for multiuser and security. With multiuser each user will start their
own X server. For security that's a big chunk of code that doesn't
need root anymore. Now only the device drivers need security audits.
--
Jon Smirl
jonsmirl at gmail.com
More information about the xorg
mailing list