On Tue, Sep 17, 2019 at 3:30 AM Lesley Persyn <[email protected]>
wrote:

> Hi all,
>
> With US keyboard systems no problem. But with "Belgium Dutch keyboard"
> (point, not french) still an issue. (if i don't select a keyboard and set
> the remote server to US then it works fine but this should work seamlessly
> and i need the keymap)
>
> What are the best practices to create a .keymap file? How to read out the
> keyboard keys?
>
> I can do it myself but cannot find where to start. (i don't see any logic
> with the 0x29,... mappings)
>

So, first big disclaimer that I've never actually written a keymap before,
so I'm kind of venturing out here on a limb and telling you what I *think*
should work.

To answer your first question, how to read out the keyboard keys, get the
"xev" program on a Linux system and launch it, and then press the keys -
you'll see output like this:

KeyPress event, serial 37, synthetic NO, window 0x6000001,
    root 0xd3, subw 0x0, time 610952169, (94,73), root:(688,379),
    state 0x0, keycode 10 (keysym 0x31, 1), same_screen YES,
    XLookupString gives 1 bytes: (31) "1"
    XmbLookupString gives 1 bytes: (31) "1"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x6000001,
    root 0xd3, subw 0x0, time 610952264, (94,73), root:(688,379),
    state 0x0, keycode 10 (keysym 0x31, 1), same_screen YES,
    XLookupString gives 1 bytes: (31) "1"
    XFilterEvent returns: False

This shows a key press and key release for the "1" key, which is keysym
0x31.  The en_us_qwerty.keymap file has this line:

map -shift 0x29 0x02..0x0D ~ "`1234567890-="

So, based on my read of this, and experimentation with xev, my guess is
that the 0x29 is somehow the base of all of those keys on that line, and
the "0x02..0x0D" is the range of values that are added or masked onto that
base to get the actual value.  However, this theory is not working out on
my keyboard - things are slightly off - so I may be getting that wrong.
Someone else can probably help on that, or maybe it'll at least set you in
the right direction.  Here are a few links that might help out:

https://github.com/FreeRDP/FreeRDP/wiki/Keyboard
https://issues.apache.org/jira/browse/GUACAMOLE-233
https://github.com/apache/guacamole-server/pull/55

Final thing I would say is that the keyboard is most likely related to
another keyboard that's already mapped - maybe one of the other de_
keyboards, so you can probably base off of that and then just make the
necessary adjustments.

-Nick

Reply via email to