CorePointer & CoreKeyboard ignored in ServerLayout, default input devices being used
(known workaround at the end of this issue description)
I'm trying to use xrdp on ubuntu 20.04 with xorg-xserver 1.20.8-2ubuntu2.4 - but the supplied config file results in no mouse or keyboard in the session (both provided by xorgxrdp drivers), even though the config appears to match what the xorg.conf manpage says:
relevant excerpt from https://github.com/neutrinolabs/xorgxrdp/blob/devel/xrdpdev/xorg.conf as distributed by ubuntu:
Section "ServerLayout"
Identifier "X11 Server"
Screen "Screen (xrdpdev)"
InputDevice "xrdpMouse" "CorePointer" <------------------------------
InputDevice "xrdpKeyboard" "CoreKeyboard" <--------------------------
EndSection
Section "ServerFlags"
Option "DontVTSwitch" "on"
Option "AutoAddDevices" "off"
EndSection
Section "Module"
Load "dbe"
Load "ddc"
Load "extmod"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
Load "xorgxrdp"
Load "fb"
EndSection
Section "InputDevice"
Identifier "xrdpKeyboard"
Driver "xrdpkeyb"
EndSection
Section "InputDevice"
Identifier "xrdpMouse"
Driver "xrdpmouse"
EndSection
The manpage states :
SERVERLAYOUT SECTION
-- snip 8< ----
InputDevice "idev−id" "option" ...
-- snip 8< ----
The options permitted here are any that may also be given in the InputDevice sections. Normally only session−specific input device options would be used here. The most commonly used options are:
"CorePointer"
"CoreKeyboard"
"SendCoreEvents"
-- snip 8< ---
Here is an example of a ServerLayout section for a dual headed configuration with two mice:
Section "ServerLayout"
Identifier "Layout 1"
Screen "MGA 1"
Screen "MGA 2" RightOf "MGA 1"
InputDevice "Keyboard 1" "CoreKeyboard" <--------------------------
InputDevice "Mouse 1" "CorePointer" <---------------------------
InputDevice "Mouse 2" "SendCoreEvents"
Option "BlankTime" "5"
EndSection
So the config file agrees with the manpage - but this leads to <default pointer>
and <default keyboard>
being used, since no CorePointer and CoreKeyboard is found and therefore a unusable rdp session, unless I repeat the CorePointer and CoreKeyboard options in the InputDevice sections like this, which fixes the issue and makes it work as expected:
Section "InputDevice"
Identifier "xrdpKeyboard"
Driver "xrdpkeyb"
Option "CoreKeyboard"
EndSection
Section "InputDevice"
Identifier "xrdpMouse"
Driver "xrdpmouse"
Option "CorePointer"
EndSection
Is this a bug? Is the config file parsing broken? Is the manpage wrong? The config file is quite old and has been distributed like that for years, so.. what exactly is broken here? I've also had a look at xf86Config.c but the code is years old as well and appears to agree with what the manpage and the original config contains.