Barrier: Missing ร…ร„ร– on swedish keyboard

Created on 2 Jan 2019  ยท  20Comments  ยท  Source: debauchee/barrier

Operating Systems

Server: Windows 10 1803

Client: Ubuntu 18.10

Barrier Version

Server: 2.1.0
Client 2.2.0

Swedish keys ร…ร„ร– does not work on client. Everything else works as expected, just these three letters that are non-working.

Debug output on server when hitting buttons:

[2019-01-02T22:12:33] DEBUG2: wrote 104 bytes [2019-01-02T22:12:33] DEBUG1: hook: 0x000000dd 0x001a0001 [2019-01-02T22:12:33] DEBUG1: hook: 0x0601e5dd 0x001a0001 [2019-01-02T22:12:33] DEBUG1: hook: 0x0700e5dd 0x001a0001 [2019-01-02T22:12:33] DEBUG1: event: Key char=229, vk=0xdd, nagr=0, lParam=0x001a0001 [2019-01-02T22:12:33] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:33] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:33] DEBUG1: onKeyDown id=65533 mask=0x2000 button=0x001a [2019-01-02T22:12:33] DEBUG1: hook: 0x000000dd 0x801a0001 [2019-01-02T22:12:33] DEBUG1: hook: 0x0601e5dd 0x801a0001 [2019-01-02T22:12:33] DEBUG1: hook: 0x0700e5dd 0x801a0001 [2019-01-02T22:12:33] DEBUG1: event: Key char=229, vk=0xdd, nagr=0, lParam=0x801a0001 [2019-01-02T22:12:33] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:33] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:33] DEBUG1: onKeyUp id=65533 mask=0x2000 button=0x001a [2019-01-02T22:12:34] DEBUG1: hook: 0x000000de 0x00280001 [2019-01-02T22:12:34] DEBUG1: hook: 0x0601e4de 0x00280001 [2019-01-02T22:12:34] DEBUG1: hook: 0x0700e4de 0x00280001 [2019-01-02T22:12:34] DEBUG1: event: Key char=228, vk=0xde, nagr=0, lParam=0x00280001 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: onKeyDown id=65533 mask=0x2000 button=0x0028 [2019-01-02T22:12:34] DEBUG1: hook: 0x000000de 0x80280001 [2019-01-02T22:12:34] DEBUG1: hook: 0x0601e4de 0x80280001 [2019-01-02T22:12:34] DEBUG1: hook: 0x0700e4de 0x80280001 [2019-01-02T22:12:34] DEBUG1: event: Key char=228, vk=0xde, nagr=0, lParam=0x80280001 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: onKeyUp id=65533 mask=0x2000 button=0x0028 [2019-01-02T22:12:34] DEBUG1: hook: 0x000000c0 0x00270001 [2019-01-02T22:12:34] DEBUG1: hook: 0x0601f6c0 0x00270001 [2019-01-02T22:12:34] DEBUG1: hook: 0x0700f6c0 0x00270001 [2019-01-02T22:12:34] DEBUG1: event: Key char=246, vk=0xc0, nagr=0, lParam=0x00270001 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: onKeyDown id=65533 mask=0x2000 button=0x0027 [2019-01-02T22:12:34] DEBUG1: hook: 0x000000c0 0x80270001 [2019-01-02T22:12:34] DEBUG1: hook: 0x0601f6c0 0x80270001 [2019-01-02T22:12:34] DEBUG1: hook: 0x0700f6c0 0x80270001 [2019-01-02T22:12:34] DEBUG1: event: Key char=246, vk=0xc0, nagr=0, lParam=0x80270001 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: onKeyUp id=65533 mask=0x2000 button=0x0027 [2019-01-02T22:12:34] DEBUG1: hook: 0x00000044 0x00200001 [2019-01-02T22:12:34] DEBUG1: hook: 0x06016444 0x00200001 [2019-01-02T22:12:34] DEBUG1: hook: 0x07006444 0x00200001 [2019-01-02T22:12:34] DEBUG1: event: Key char=100, vk=0x44, nagr=0, lParam=0x00200001 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: onKeyDown id=100 mask=0x2000 button=0x0020 [2019-01-02T22:12:34] DEBUG1: hook: 0x00000044 0x80200001 [2019-01-02T22:12:34] DEBUG1: hook: 0x06016444 0x80200001 [2019-01-02T22:12:34] DEBUG1: hook: 0x07006444 0x80200001 [2019-01-02T22:12:34] DEBUG1: event: Key char=100, vk=0x44, nagr=0, lParam=0x80200001 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: new mask: 0x2000 [2019-01-02T22:12:34] DEBUG1: onKeyUp id=100 mask=0x2000 button=0x0020 [2019-01-02T22:12:36] DEBUG2: writef(CALV) [2019-01-02T22:12:36] DEBUG2: wrote 4 bytes

I hit รฅรครถd

bug linux windows

Most helpful comment

found a termporary workaround, but it breaks รฅรครถ on the server while the client is connected, at least it works somewhat, i will probably remap the shortcuts to something else that gets triggered at the same time as my normal รฅรครถ by ahk to restore functionality on both client and server at the same time.
image
All i did was map รฅรครถ to be sent to the client when pressing the hotkeys (รฅรครถ)

EDIT: This is what i came up with when using AHK

SC01A::
Send, {ASC 134}
Return
SC028::
Send, {ASC 132}
Return
SC027::
Send, {ASC 148}
Return
^SC01A::
Send, {ASC 143}
Return
^SC028::
Send, {ASC 142}
Return
^SC027::
Send, {ASC 153}
Return

I did it this way cus it seems AHK cant capture key events when client have control, but this overrides barrier and still sends รฅรครถ to the server. (Oh and sry i could not get capital letters to work on client, i rly tried.)

All 20 comments

I have the same thing (win host, arch client), i use "setxkbmap -device 5 se" to get all the other keys to work, but รฅรครถ still does nothing, they dont even register anything in "xev"

I think this issue have been around for a while
https://github.com/symless/synergy-core/issues/5850
but its NOT the same as https://github.com/symless/synergy-core/issues/4280
Even tho they closed the old รฅรครถ issue due to thinking them the same, this senario is different because all other keys are mapped correctly and both server and client uses swe, if i switch client and server the other way around (arch host, win client) it works, i think that "Virtual core XTEST keyboard" only recognices us keys, and we can successfully remap those to where they are suposed to be on the swedish keyboard, but the "extra" keys (รฅรครถ) are just plain missing.

found a termporary workaround, but it breaks รฅรครถ on the server while the client is connected, at least it works somewhat, i will probably remap the shortcuts to something else that gets triggered at the same time as my normal รฅรครถ by ahk to restore functionality on both client and server at the same time.
image
All i did was map รฅรครถ to be sent to the client when pressing the hotkeys (รฅรครถ)

EDIT: This is what i came up with when using AHK

SC01A::
Send, {ASC 134}
Return
SC028::
Send, {ASC 132}
Return
SC027::
Send, {ASC 148}
Return
^SC01A::
Send, {ASC 143}
Return
^SC028::
Send, {ASC 142}
Return
^SC027::
Send, {ASC 153}
Return

I did it this way cus it seems AHK cant capture key events when client have control, but this overrides barrier and still sends รฅรครถ to the server. (Oh and sry i could not get capital letters to work on client, i rly tried.)

Thank you @Svahnen, it's an ok temporary solution, but not feasible in the long run. I'm actually pretty darn upset with developers of Synergy, i heard only good things, only read good things, looked amazing, bought it. Instantly disappointed because "ร…ร„ร–" does not work when remote controlling computers with Swedish keyboard layouts. And i've seen this issue around for a year now..

I have tried all possible "fixes" and none works completely. Tried both version 1 and the Version 2 Beta. Doesn't matter if it's two swedish pc's with exact same set-up, ร…ร„ร– does not work from one to another.
Developers; Fix this, pretty please!

Yeah, this isn't stellar performance for something that I _believe_ is mainly supposed to be able to communicate mouse movement and keystrokes across computers.
I've "lost" 5 keys on my client because these are seemingly not supported by the software (not that _that_ is stated anywhere).
I wouldn't be upset if it would have been stated that only US layouts are supported, but without that disclaimer you're getting fooled into believing it "just works".

This is also true for German Umlauts (รค, รถ, รผ, รŸ) - they do not work on the client.

Greek also (ฮฌ, ฯ, ฮฏ, ฯŒ, ฯŽ, ฮฎ, etc).
Arch host - win10 client

See issue: https://github.com/symless/synergy-core/issues/6512

Affects Barrier as well and the same workaround can be used if you accept en-US as the "first" keyboard layout.

See issue: symless#6512

Affects Barrier as well and the same workaround can be used if you accept en-US as the "first" keyboard layout.

Ok, interesting. Although if that is a working workaround. Is there any actual progress made in the development of the software to prevent this bugs yet?

Is there any actual progress made in the development of the software to prevent this bugs yet?

I believe no. Barrier is developed by a team of volunteers, fixes for bugs are not guaranteed to be done in timely manner.

Server: Windows 10 1903

Client: Windows 10 1903

Barrier Version
Server: 2.3.1
Client 2.3.1

In the hope of help the developers the debug log looks like this. when pressing รฅรครถ

--รฅ--
[2019-09-28T07:16:45] DEBUG2: wrote 4 bytes
[2019-09-28T07:16:45] DEBUG2: msg from server: DKDN
[2019-09-28T07:16:45] DEBUG2: readf(%2i%2i%2i)
[2019-09-28T07:16:45] DEBUG2: readf: read 2 byte integer: 65533 (0xfffd)
[2019-09-28T07:16:45] DEBUG2: readf: read 2 byte integer: 8192 (0x2000)
[2019-09-28T07:16:45] DEBUG2: readf: read 2 byte integer: 27 (0x1b)
[2019-09-28T07:16:45] DEBUG1: recv key down id=0x0000fffd, mask=0x2000, button=0x001b
[2019-09-28T07:16:45] DEBUG1: mapKey fffd (65533) with mask 2000, start state: 2000
[2019-09-28T07:16:45] DEBUG1: key fffd is not on keyboard
---
--รค--
[2019-09-28T07:17:44] DEBUG2: msg from server: DKDN
[2019-09-28T07:17:44] DEBUG2: readf(%2i%2i%2i)
[2019-09-28T07:17:44] DEBUG2: readf: read 2 byte integer: 65533 (0xfffd)
[2019-09-28T07:17:44] DEBUG2: readf: read 2 byte integer: 8192 (0x2000)
[2019-09-28T07:17:44] DEBUG2: readf: read 2 byte integer: 40 (0x28)
[2019-09-28T07:17:44] DEBUG1: recv key down id=0x0000fffd, mask=0x2000, button=0x0028
[2019-09-28T07:17:44] DEBUG1: mapKey fffd (65533) with mask 2000, start state: 2000
[2019-09-28T07:17:44] DEBUG1: key fffd is not on keyboard
[2019-09-28T07:17:44] DEBUG2: writef(CNOP)
---
--รถ--
[2019-09-28T07:19:21] DEBUG2: writef(CNOP)
[2019-09-28T07:19:21] DEBUG2: wrote 4 bytes
[2019-09-28T07:19:23] DEBUG2: msg from server: DKDN
[2019-09-28T07:19:23] DEBUG2: readf(%2i%2i%2i)
[2019-09-28T07:19:23] DEBUG2: readf: read 2 byte integer: 65533 (0xfffd)
[2019-09-28T07:19:23] DEBUG2: readf: read 2 byte integer: 8192 (0x2000)
[2019-09-28T07:19:23] DEBUG2: readf: read 2 byte integer: 39 (0x27)
[2019-09-28T07:19:23] DEBUG1: recv key down id=0x0000fffd, mask=0x2000, button=0x0027
[2019-09-28T07:19:23] DEBUG1: mapKey fffd (65533) with mask 2000, start state: 2000
[2019-09-28T07:19:23] DEBUG1: key fffd is not on keyboard
---

My best guess is that it's utf8/16 gone bad.
And while a would prefer it to "simply work", PLEASE PLEASE PLEASE developer, as a workaround make it possible to make custom mappings for id+mask+button so I could map
id=0x0000fffd, mask=0x2000, button=0x0027
to รถ.
I figure it should be fairly easy to create as I assume there is already some mapping function available.

the buttons รฅรครถ makes upp about 0.1-5% of typed chars in languages like swedish so it's a real pain to not have them when typing in native languages.

It's not related to the problem but a workaround that I currently using.
Using a Razer Ornata (gaming keyboard) that allows scripts to be mapped to any keys.
So I have created 3 profiles (changed using fn + 0/1/2
Profile 0 is normal keyboard
Profile 1 I have mapped
รฅ = alt + 0 + 2 + 2 + 9 keypress (generating รฅ)
รค = alt + 0 + 2 + 2 + 8 keypress (generating รค)
รถ = alt + 0 + 2 + 4 + 6 keypress (generating รถ)
Profile 2 I have mapped
รฅ = alt + 0 + 1 + 9 + 7 keypress (generating ร…)
รค = alt + 0 + 1 + 9 + 6 keypress (generating ร„)
รถ = alt + 0 + 2 + 1 + 4 keypress (generating ร–)

It's not a perfect solution but it's by far the best solution I figued out so far. Usually I use Profile1, not having access to capital letters is acceptable most of the time.

It should be possible to do the same with for isntance autohotkey but I didn't managed to get it to work :(

Server: Linux Mint, Italian layout, running version 2.3.2
Client: Linux Manjaro, Italian layout, running version 2.3.2
รจ, รฒ, ร , รน keys not working.

I just got a new system with windows 10 installed and run into this issue but all used to work fine on the old one (German Umlauts in my case)...

...I compared the settings and found the culprid in my case. It is part of the administrative regional settings / system locale. There is a checkbox for Beta UTF-8 support which was checked on the new system - unchecking and restarting Barrier solved the issue for me.
barrier

Installing Swedish language pack (Microsoft) and activated it on the server side solved this for me.
Server: Win10
Client1: Win10
Client2: Arch Linux

Installing Swedish language pack (Microsoft) and activated it on the server side solved this for me.
Server: Win10
Client1: Win10
Client2: Arch Linux

I'll be... I'm quite confident that I tried that already about a year ago in vain, but now it worked!!
@cmtec Thanks ALOT for taking the time to write this comment, I have been struggling with this for more than a year and this solved the problem (even if it's a bit inconvenient to have windows in swedish on one mashine it ALOT better than the workarounds!)

This is a blocking feature. You cannot use a virtual keyboard if misses basic characters accents are important but also |@#...

Server: ubuntu 20.04
Client: ubuntu 20.04

Server: 2.3.2-Release-00000000
Client: 2.3.2-Release-00000000

Related to #860.

This post helped me fix the problem with missing keys (using nordic keyboard layout):
https://github.com/symless/synergy-core/issues/6512

The ultimate fix for wrong UTF16 char passed as KeyID is in pull request https://github.com/debauchee/barrier/pull/910 The solution is to take UTF16 char produced by current keyboard layout on win host directly, without any conversion to some flavor of ANSI code page and back to UTF16, that obviously works unreliable in so many cases.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

fredlllll picture fredlllll  ยท  5Comments

autotoxicus picture autotoxicus  ยท  4Comments

graingert picture graingert  ยท  4Comments

elig0n picture elig0n  ยท  3Comments

raffimohammed picture raffimohammed  ยท  3Comments