Hi,

i am checking the keyboard keys from guacamole and MSTSC(remote desktop
from windows) . i have issue in scroll lock

scenario :-

1) when i am login through guacamole to xrdp system using Firefox  and
press scroll_lock and then start to typing , keyword not type.

2) when i am taking a MSTSC (remote desktop from windows) to xrdp  and
press scroll_lock and then start to typing , keyword type correctly.

so i request what is the issue.






On Wed, 18 Sep 2019 at 23:53, Mike Jumper <[email protected]> wrote:

> On Tue, Sep 17, 2019 at 5:54 PM Nick Couchman <[email protected]> wrote:
>
>> 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.
>>
>
> I can clarify a bit on the format of the .keymap files. I'll be using the
> German keymap as an example, but all RDP keymaps for Guacamole follow this
> format. There are 5 types of lines that you will find:
>
> 1. A comment (any line starting with "#"):
>
>
> https://github.com/apache/guacamole-server/blob/b181026e589d396b498de56747ab8a489b34647b/src/protocols/rdp/keymaps/de_de_qwertz.keymap#L25
>
> 2. The name of the keymap that the current keymap should inherit from
> (most will say "base" here, a reference to the "base.keymap" file). This
> line starts with "parent" and allows keymaps to avoid repeating common key
> definitions.
>
>
> https://github.com/apache/guacamole-server/blob/b181026e589d396b498de56747ab8a489b34647b/src/protocols/rdp/keymaps/de_de_qwertz.keymap#L20
>
> 3. The name of the keymap. This line starts with "name" and dictates what
> the value of the "server-layout" connection parameter will need to be set
> to. This value also dictates what other keymaps will specify for "parent"
> if they wish to inherit from your keymap.
>
>
> https://github.com/apache/guacamole-server/blob/b181026e589d396b498de56747ab8a489b34647b/src/protocols/rdp/keymaps/de_de_qwertz.keymap#L21
>
> 4. The name of the FreeRDP keyboard layout constant for the keyboard
> layout that your keymap defines. The value specified here will be sent to
> the RDP server during session negotiation. These are dictated by Windows /
> the RDP protocol, and the FreeRDP library defines some constants for these.
> This line starts with "freerdp".
>
>
> https://github.com/apache/guacamole-server/blob/b181026e589d396b498de56747ab8a489b34647b/src/protocols/rdp/keymaps/de_de_qwertz.keymap#L22
>
> 5. A Windows scancode <--> X11 keysym mapping. These lines are the more
> complex lines which start with "map":
>
>
> https://github.com/apache/guacamole-server/blob/b181026e589d396b498de56747ab8a489b34647b/src/protocols/rdp/keymaps/de_de_qwertz.keymap#L31
>
> The important thing to keep in mind with the scancode/keysym mapping is
> the inherent difference between scancodes and keysyms - the whole reason
> these keymaps exist at all. Guacamole uses X11 keysyms for key events as
> these are independent of keyboard layout and define key identity. The
> keysym for an uppercase "A" is always the same, regardless of where that
> key is located, whether Shift or AltGr are held down, etc. Windows
> scancodes, on the other hand, deal more with key location. While a keysym
> may mean "A", a scancode has meaning more like "the second key from the
> left in the second row". They have no meaning on their own until the
> keyboard layout is known, and even then may depend on whether certain
> modifier keys are active.
>
> With the above in mind, each "map" line tells Guacamole how exactly to
> produce the effect of a particular key through sending Windows scancodes.
> Since the keyboard layout of the client machine will not necessarily match
> that of the server, these instructions include whether some modifiers are
> required for those keys to map as listed, and whether some modifiers must
> NOT be active for those keys to map as listed. The format of each "map"
> line is as follows:
>
>     map [OPTIONAL MODIFIER REQUIREMENTS] [SCANCODE LIST] ~ [KEYSYMS]
>
> Dissecting the line I linked to above:
>
>     map -altgr -shift 0x56 0x2C..0x35      ~ "<yxcvbnm,.-"
>
> this line says that the following keysyms map to the following scancodes:
>
>     "<": 0x56
>     "y": 0x2C
>     "x": 0x2D
>     "c": 0x2E
>     "v": 0x2F
>     "b": 0x30
>     "n": 0x31
>     "m": 0x32
>     ",": 0x33
>     ".": 0x34
>     "-": 0x45
>
> and that the "altgr" and "shift" modifiers must NOT be active (Guacamole
> will automatically send the key events and scancodes to release these keys
> prior to sending the required scancodes to press any of the above). The two
> dots between "0x2C" and "0x35" are just a shorthand notation supported by
> the keymap files which avoid needing to list each scancode, as scancodes of
> adjacent keys tend to be one apart.
>
> The "<yxcvbnm,.-" format is also a convenience provided by the keymap
> format. X11 keysyms are numeric by nature, but there is also a direct
> mapping from Unicode to keysyms. If the keysym you are mapping has an
> associated Unicode character, representing the key using that character in
> the keymap is more readable. You will see numeric values specified for keys
> which are not printable, such as "Ctrl" within the base keymap, or dead
> keys:
>
>
> https://github.com/apache/guacamole-server/blob/b181026e589d396b498de56747ab8a489b34647b/src/protocols/rdp/keymaps/de_de_qwertz.keymap#L60
>
> - Mike
>
>

-- 
Thanks & Regards,

Manoj Patil.(Asst. Manager DBA)
Netwin Systems & Softwares(I) Pvt.Ltd
Nasik.
Mobile No -+91-9922507588
Email- [email protected]

Reply via email to