-
Notifications
You must be signed in to change notification settings - Fork 40
Description
NX uses xfree86
rules by default. If the client side is Linux and using evdev
rules and model the nxagent activates a keycode mapping (see nxagentConvertKeycode()
in hw/nxagent/Keyboard.c
) to map evdev
keycodes back to xfree86
keycodes. I suppose this was necessary years ago because Xorg did not ship evdev
support in the xkb database and NX was using xfree86
. Starting 2009 (see https://www.freedesktop.org/wiki/Software/XKeyboardConfig/) evdev
was included in XKeyboardConfig. So I think nxagent should try to use it instead of doing the keycode conversion and use the current solution as a fallback only.
Generally I'd like to have nxagent clone the settings from the client side automatically whenever possible (on initial connect and on reconnect).
Currently the -keyboard/-kbtype
parameter accepts a value of query
which was implemented in nx-2.0.0-22. The changelog describes it like this:
- Implented handling of value "query" for nxagentKbtype. This value
is passed by the NX client for MacOSX. If value of nxagentKbtype is
"query" or NULL we init keyboard by core protocol functions reading
the keyvoard mapping of the X server. The property _XKB_RULES_NAMES
is always set on the root window with default values of model and
layout.
I think this behaviour is desirable anywhere and should be extended to work on other OSes, too. And it should be the default.