[GH-ISSUE #1082] Some letters depend on server layout, others do not #862

Open
opened 2026-05-05 07:13:45 -06:00 by gitea-mirror · 4 comments
Owner

Originally created by @Ashark on GitHub (Feb 28, 2021).
Original GitHub issue: https://github.com/debauchee/barrier/issues/1082

I use two layouts on both server and client.

Server: Arch Linux, Barrier 2.3.3
Client: MacOS, Barrier 2.3.3

When I am typing in russian, I get a mixed set of letters being typed at a client side in some circumstances.

Steps to reproduce the behavior:

  1. Set us layout on server
  2. Set ru layout on client
  3. Type some text.
  4. Notice that most letters are typed in russian (f.e. letter ы when pressing s/ы button), while some letters are typed as in english (f.e. letter m when pressing m/ь button).

Expected behavior
All letters should be typed in russian, including a cyrillic soft sign ("ь").

Desktop (please complete the following information):

Additional context

If swith a server layout to ru, then typing a soft sign works correctly. But client side should not depend on server layout.

I am attaching a part of log when pressing buttons.
"s" and "ы" log:

server us, client ru; wanted "ы", and "ы" appeared, which is ok.
[2021-02-28T20:43:04] DEBUG1: recv key down id=0x00000073, mask=0x2000, button=0x0027
[2021-02-28T20:43:04] DEBUG1: mapKey 0073 (115) with mask 2000, start state: 0000
[2021-02-28T20:43:04] DEBUG1: find best:  0000 2000
[2021-02-28T20:43:04] DEBUG1: best key index 1 of 1 (exact)
[2021-02-28T20:43:04] DEBUG1: found key in group 1
[2021-02-28T20:43:04] DEBUG1: state: 0000,0000,0007
[2021-02-28T20:43:04] DEBUG1: flip: 0000 (0000 vs 0000 in 0007 - 0000)
[2021-02-28T20:43:04] DEBUG1: desired state: 2000 0000,0000,0007
[2021-02-28T20:43:04] DEBUG1: flip: 0000 (0000 vs 2000 in fff8 - 6020)
[2021-02-28T20:43:04] DEBUG1: mapped to 002, new state 0000
[2021-02-28T20:43:04] DEBUG1: keystrokes:
[2021-02-28T20:43:04] DEBUG1:   group 1
[2021-02-28T20:43:04] DEBUG1:   button=0x0002 virtualKey=0x0001 keyDown=down
[2021-02-28T20:43:04] DEBUG1:   group 0
[2021-02-28T20:43:04] DEBUG1: recv key up id=0x00000073, mask=0x2000, button=0x0027
[2021-02-28T20:43:04] DEBUG1: keystrokes:
[2021-02-28T20:43:04] DEBUG1:   button=0x0002 virtualKey=0x0001 keyDown=up

server us, client us; wanted "s", and "s" appeared, which is ok
[2021-02-28T20:44:05] DEBUG1: recv key down id=0x00000073, mask=0x2000, button=0x0027
[2021-02-28T20:44:05] DEBUG1: mapKey 0073 (115) with mask 2000, start state: 0000
[2021-02-28T20:44:05] DEBUG1: find best:  0000 2000
[2021-02-28T20:44:05] DEBUG1: best key index 1 of 1 (exact)
[2021-02-28T20:44:05] DEBUG1: found key in group 1
[2021-02-28T20:44:05] DEBUG1: state: 0000,0000,0007
[2021-02-28T20:44:05] DEBUG1: flip: 0000 (0000 vs 0000 in 0007 - 0000)
[2021-02-28T20:44:05] DEBUG1: desired state: 2000 0000,0000,0007
[2021-02-28T20:44:05] DEBUG1: flip: 0000 (0000 vs 2000 in fff8 - 6020)
[2021-02-28T20:44:05] DEBUG1: mapped to 002, new state 0000
[2021-02-28T20:44:05] DEBUG1: keystrokes:
[2021-02-28T20:44:05] DEBUG1:   button=0x0002 virtualKey=0x0001 keyDown=down
[2021-02-28T20:44:05] DEBUG1: recv key up id=0x00000073, mask=0x2000, button=0x0027
[2021-02-28T20:44:05] DEBUG1: keystrokes:
[2021-02-28T20:44:05] DEBUG1:   button=0x0002 virtualKey=0x0001 keyDown=up

"m" and "ь" log:

server us, client us; wanted "m", and  "m" appeared, which is ok
[2021-02-28T20:46:51] DEBUG1: recv key down id=0x0000006d, mask=0x2000, button=0x003a
[2021-02-28T20:46:51] DEBUG1: mapKey 006d (109) with mask 2000, start state: 0000
[2021-02-28T20:46:51] DEBUG1: find best:  0000 2000
[2021-02-28T20:46:51] DEBUG1: best key index 1 of 1 (exact)
[2021-02-28T20:46:51] DEBUG1: found key in group 1
[2021-02-28T20:46:51] DEBUG1: state: 0000,0000,0007
[2021-02-28T20:46:51] DEBUG1: flip: 0000 (0000 vs 0000 in 0007 - 0000)
[2021-02-28T20:46:51] DEBUG1: desired state: 2000 0000,0000,0007
[2021-02-28T20:46:51] DEBUG1: flip: 0000 (0000 vs 2000 in fff8 - 6020)
[2021-02-28T20:46:51] DEBUG1: mapped to 02f, new state 0000
[2021-02-28T20:46:51] DEBUG1: keystrokes:
[2021-02-28T20:46:51] DEBUG1:   button=0x002f virtualKey=0x002e keyDown=down
[2021-02-28T20:46:51] DEBUG1: recv key up id=0x0000006d, mask=0x2000, button=0x003a
[2021-02-28T20:46:51] DEBUG1: keystrokes:
[2021-02-28T20:46:51] DEBUG1:   button=0x002f virtualKey=0x002e keyDown=up

server us, client ru; wanted "ь", but "m" appeared, which is wrong
[2021-02-28T20:47:03] DEBUG1: recv key down id=0x0000006d, mask=0x2000, button=0x003a
[2021-02-28T20:47:03] DEBUG1: mapKey 006d (109) with mask 2000, start state: 0000
[2021-02-28T20:47:03] DEBUG1: find best:  0000 2000
[2021-02-28T20:47:03] DEBUG1: best key index 1 of 1 (1 modifiers)
[2021-02-28T20:47:03] DEBUG1: found key in group 0
[2021-02-28T20:47:03] DEBUG1: state: 0000,0004,0007
[2021-02-28T20:47:03] DEBUG1: flip: 0004 (0000 vs 0004 in 0007 - 0000)
[2021-02-28T20:47:03] DEBUG1: desired state: 2000 0004,0004,0007
[2021-02-28T20:47:03] DEBUG1: flip: 0000 (0004 vs 2000 in fff8 - 6020)
[2021-02-28T20:47:03] DEBUG1: mapped to 02f, new state 0000
[2021-02-28T20:47:03] DEBUG1: keystrokes:
[2021-02-28T20:47:03] DEBUG1:   button=0x003b virtualKey=0x003a keyDown=down
[2021-02-28T20:47:03] DEBUG1:   button=0x002f virtualKey=0x002e keyDown=down
[2021-02-28T20:47:03] DEBUG1:   button=0x003b virtualKey=0x003a keyDown=up
[2021-02-28T20:47:04] DEBUG1: recv key up id=0x0000006d, mask=0x2000, button=0x003a
[2021-02-28T20:47:04] DEBUG1: keystrokes:
[2021-02-28T20:47:04] DEBUG1:   button=0x002f virtualKey=0x002e keyDown=up
Originally created by @Ashark on GitHub (Feb 28, 2021). Original GitHub issue: https://github.com/debauchee/barrier/issues/1082 I use two layouts on both server and client. Server: Arch Linux, Barrier 2.3.3 Client: MacOS, Barrier 2.3.3 When I am typing in russian, I get a mixed set of letters being typed at a client side in some circumstances. **Steps to reproduce the behavior:** 1. Set us layout on server 2. Set ru layout on client 3. Type some text. 4. Notice that most letters are typed in russian (f.e. letter ы when pressing s/ы button), while some letters are typed as in english (f.e. letter m when pressing m/ь button). **Expected behavior** All letters should be typed in russian, including a cyrillic soft sign ("ь"). **Desktop (please complete the following information):** **Additional context** If swith a server layout to ru, then typing a soft sign works correctly. But client side should not depend on server layout. I am attaching a part of log when pressing buttons. "s" and "ы" log: ``` server us, client ru; wanted "ы", and "ы" appeared, which is ok. [2021-02-28T20:43:04] DEBUG1: recv key down id=0x00000073, mask=0x2000, button=0x0027 [2021-02-28T20:43:04] DEBUG1: mapKey 0073 (115) with mask 2000, start state: 0000 [2021-02-28T20:43:04] DEBUG1: find best: 0000 2000 [2021-02-28T20:43:04] DEBUG1: best key index 1 of 1 (exact) [2021-02-28T20:43:04] DEBUG1: found key in group 1 [2021-02-28T20:43:04] DEBUG1: state: 0000,0000,0007 [2021-02-28T20:43:04] DEBUG1: flip: 0000 (0000 vs 0000 in 0007 - 0000) [2021-02-28T20:43:04] DEBUG1: desired state: 2000 0000,0000,0007 [2021-02-28T20:43:04] DEBUG1: flip: 0000 (0000 vs 2000 in fff8 - 6020) [2021-02-28T20:43:04] DEBUG1: mapped to 002, new state 0000 [2021-02-28T20:43:04] DEBUG1: keystrokes: [2021-02-28T20:43:04] DEBUG1: group 1 [2021-02-28T20:43:04] DEBUG1: button=0x0002 virtualKey=0x0001 keyDown=down [2021-02-28T20:43:04] DEBUG1: group 0 [2021-02-28T20:43:04] DEBUG1: recv key up id=0x00000073, mask=0x2000, button=0x0027 [2021-02-28T20:43:04] DEBUG1: keystrokes: [2021-02-28T20:43:04] DEBUG1: button=0x0002 virtualKey=0x0001 keyDown=up server us, client us; wanted "s", and "s" appeared, which is ok [2021-02-28T20:44:05] DEBUG1: recv key down id=0x00000073, mask=0x2000, button=0x0027 [2021-02-28T20:44:05] DEBUG1: mapKey 0073 (115) with mask 2000, start state: 0000 [2021-02-28T20:44:05] DEBUG1: find best: 0000 2000 [2021-02-28T20:44:05] DEBUG1: best key index 1 of 1 (exact) [2021-02-28T20:44:05] DEBUG1: found key in group 1 [2021-02-28T20:44:05] DEBUG1: state: 0000,0000,0007 [2021-02-28T20:44:05] DEBUG1: flip: 0000 (0000 vs 0000 in 0007 - 0000) [2021-02-28T20:44:05] DEBUG1: desired state: 2000 0000,0000,0007 [2021-02-28T20:44:05] DEBUG1: flip: 0000 (0000 vs 2000 in fff8 - 6020) [2021-02-28T20:44:05] DEBUG1: mapped to 002, new state 0000 [2021-02-28T20:44:05] DEBUG1: keystrokes: [2021-02-28T20:44:05] DEBUG1: button=0x0002 virtualKey=0x0001 keyDown=down [2021-02-28T20:44:05] DEBUG1: recv key up id=0x00000073, mask=0x2000, button=0x0027 [2021-02-28T20:44:05] DEBUG1: keystrokes: [2021-02-28T20:44:05] DEBUG1: button=0x0002 virtualKey=0x0001 keyDown=up ``` "m" and "ь" log: ``` server us, client us; wanted "m", and "m" appeared, which is ok [2021-02-28T20:46:51] DEBUG1: recv key down id=0x0000006d, mask=0x2000, button=0x003a [2021-02-28T20:46:51] DEBUG1: mapKey 006d (109) with mask 2000, start state: 0000 [2021-02-28T20:46:51] DEBUG1: find best: 0000 2000 [2021-02-28T20:46:51] DEBUG1: best key index 1 of 1 (exact) [2021-02-28T20:46:51] DEBUG1: found key in group 1 [2021-02-28T20:46:51] DEBUG1: state: 0000,0000,0007 [2021-02-28T20:46:51] DEBUG1: flip: 0000 (0000 vs 0000 in 0007 - 0000) [2021-02-28T20:46:51] DEBUG1: desired state: 2000 0000,0000,0007 [2021-02-28T20:46:51] DEBUG1: flip: 0000 (0000 vs 2000 in fff8 - 6020) [2021-02-28T20:46:51] DEBUG1: mapped to 02f, new state 0000 [2021-02-28T20:46:51] DEBUG1: keystrokes: [2021-02-28T20:46:51] DEBUG1: button=0x002f virtualKey=0x002e keyDown=down [2021-02-28T20:46:51] DEBUG1: recv key up id=0x0000006d, mask=0x2000, button=0x003a [2021-02-28T20:46:51] DEBUG1: keystrokes: [2021-02-28T20:46:51] DEBUG1: button=0x002f virtualKey=0x002e keyDown=up server us, client ru; wanted "ь", but "m" appeared, which is wrong [2021-02-28T20:47:03] DEBUG1: recv key down id=0x0000006d, mask=0x2000, button=0x003a [2021-02-28T20:47:03] DEBUG1: mapKey 006d (109) with mask 2000, start state: 0000 [2021-02-28T20:47:03] DEBUG1: find best: 0000 2000 [2021-02-28T20:47:03] DEBUG1: best key index 1 of 1 (1 modifiers) [2021-02-28T20:47:03] DEBUG1: found key in group 0 [2021-02-28T20:47:03] DEBUG1: state: 0000,0004,0007 [2021-02-28T20:47:03] DEBUG1: flip: 0004 (0000 vs 0004 in 0007 - 0000) [2021-02-28T20:47:03] DEBUG1: desired state: 2000 0004,0004,0007 [2021-02-28T20:47:03] DEBUG1: flip: 0000 (0004 vs 2000 in fff8 - 6020) [2021-02-28T20:47:03] DEBUG1: mapped to 02f, new state 0000 [2021-02-28T20:47:03] DEBUG1: keystrokes: [2021-02-28T20:47:03] DEBUG1: button=0x003b virtualKey=0x003a keyDown=down [2021-02-28T20:47:03] DEBUG1: button=0x002f virtualKey=0x002e keyDown=down [2021-02-28T20:47:03] DEBUG1: button=0x003b virtualKey=0x003a keyDown=up [2021-02-28T20:47:04] DEBUG1: recv key up id=0x0000006d, mask=0x2000, button=0x003a [2021-02-28T20:47:04] DEBUG1: keystrokes: [2021-02-28T20:47:04] DEBUG1: button=0x002f virtualKey=0x002e keyDown=up ```
Author
Owner

@Ashark commented on GitHub (Feb 28, 2021):

It looks strange in the part of keyDown event.
Working case contains a "group" word surrounding a single keyDown:

group 1
button=0x0002 virtualKey=0x0001 keyDown=down
group 0

while incorrect case contains no "group" words, and contains two keydowns and one extra up event:

button=0x003b virtualKey=0x003a keyDown=down
button=0x002f virtualKey=0x002e keyDown=down
button=0x003b virtualKey=0x003a keyDown=up
<!-- gh-comment-id:787498791 --> @Ashark commented on GitHub (Feb 28, 2021): It looks strange in the part of keyDown event. Working case contains a "group" word surrounding a single keyDown: ``` group 1 button=0x0002 virtualKey=0x0001 keyDown=down group 0 ``` while incorrect case contains no "group" words, and contains _two_ keydowns and one extra up event: ``` button=0x003b virtualKey=0x003a keyDown=down button=0x002f virtualKey=0x002e keyDown=down button=0x003b virtualKey=0x003a keyDown=up ```
Author
Owner

@Ashark commented on GitHub (Feb 28, 2021):

Also, I noticed that it depends on variation of russian layout in macos. For example when I switched from Russian PC to Russian on a client, some symbols were typed differently.

<!-- gh-comment-id:787499644 --> @Ashark commented on GitHub (Feb 28, 2021): Also, I noticed that it depends on variation of russian layout in macos. For example when I switched from Russian PC to Russian on a client, some symbols were typed differently.
Author
Owner

@AleksandrFomin commented on GitHub (Mar 31, 2021):

I also face such kind of bug.

Server: Linux, Barrier 2.3.3
Client: Windows, Barrier 2.3.3

Steps to reproduce the behavior:

  1. Set us layout on server
  2. Set ru layout on client
  3. Type "б" ( ',' will be typed)
  4. Type "ю" ("." will be typed)

This is really annoying

<!-- gh-comment-id:810907042 --> @AleksandrFomin commented on GitHub (Mar 31, 2021): I also face such kind of bug. Server: Linux, Barrier 2.3.3 Client: Windows, Barrier 2.3.3 Steps to reproduce the behavior: 1. Set us layout on server 2. Set ru layout on client 3. Type "б" ( ',' will be typed) 4. Type "ю" ("." will be typed) This is really annoying
Author
Owner

@Ashark commented on GitHub (Mar 31, 2021):

Yes, comma and Russian layout is annoying such strongly, that I just cannot use barrier for now.
This thing is also happening when Linux Server + Linux Client configuration.

<!-- gh-comment-id:810912071 --> @Ashark commented on GitHub (Mar 31, 2021): Yes, comma and Russian layout is annoying such strongly, that I just cannot use barrier for now. This thing is also happening when Linux Server + Linux Client configuration.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/barrier#862
No description provided.