When I set up xrdp on Raspbian Jessie a while ago, the keyboard layout appeared to be wrong - commonly used keys seemed to be returning US keycodes rather than UK ones. I found this post very helpful in resolving the problem, but it didn't quite fit the bill when I tried to do the same with a Raspbian Stretch instance recently. Here's what I did on Raspbian Stretch to set up xrdp to provide the correct keycodes.

First, I checked the keboard layout was as expected:

$ cat /etc/default/keyboard | grep LAYOUT
XKBLAYOUT="gb"

Then, I generated a keyboard mapping file using xrdp-genkeymap:

$ xrdp-genkeymap km-00000809.ini

This filename follows the current filename convention (under Jessie, it was km-0809.ini). I then copied this file into the xrdp configuration files directory:

$ sudo cp km-00000809.ini /etc/xrdp

The next step was to edit the file /etc/xrdp/xrdp_keyboard.ini, which appears to be new in Raspbian Stretch. Here are the lines I added, in an excerpt from the file:

[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_de=0x00000407
< ... lines omitted ... >
rdp_layout_br=0x00000416
rdp_layout_pl=0x00000415
rdp_layout_gb=0x00000809

; <rdp layout name> = <X11 keyboard layout value>
[default_layouts_map]
rdp_layout_us=us
rdp_layout_de=de
< ... lines omitted ... >
rdp_layout_br=br(abnt2)
rdp_layout_pl=pl
rdp_layout_gb=gb

In each case, I added the rdp_layout_gb= lines. The final step was to restart the xrdp service:

$ sudo service xrdp restart

On reconnecting, I found that the keycodes were as they should have been, and I had access to the £@'~#\| keys again in their expected places on the keyboard.

1

View comments

Setting up a UK keyboard layout for XRDP on Raspbian Stretch
Setting up a UK keyboard layout for XRDP on Raspbian Stretch
1
Using dictionaries to configure objects
Using dictionaries to configure objects
Python Launcher brings shebang line processing to Windows
Python Launcher brings shebang line processing to Windows
A PEP 414-like import hook for Python 3.2
A PEP 414-like import hook for Python 3.2
Working with subprocess
Working with subprocess
2
A documentation viewer for Sphinx
5
Loading