Skip to content

revise keyboard configuration #240

@uli42

Description

@uli42

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions