mirror of
https://github.com/debauchee/barrier.git
synced 2026-05-15 14:16:02 -06:00
[GH-ISSUE #603] Keyboard layout issue #472
Labels
No labels
HiDPI
bounty
bsd/freebsd
bsd/openbsd
bug
bug
build-infra
cantfix
critical
doc
duplicate
enhancement
fix-available
from git
from release
good first issue
help wanted
installer/package
invalid
linux
macOS
meta
needs testing
pull-request
query
question
regression
regression
v2.4.0
windows
wontfix
work-in-progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/barrier#472
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @vitek on GitHub (Mar 29, 2020).
Original GitHub issue: https://github.com/debauchee/barrier/issues/603
Operating Systems
Server: Ubuntu 16.04.6 LTS
Client: Ubuntu 16.04.6 LTS
Barrier Version
barriers 2.3.2-snapshot (
11edf04107)Steps to reproduce bug
I'm experiencing two different locale related bugs in different WM.
Awesome wm host
Awesome wm server, keyboard layout setup:
setxkbmap -layout us,ruAwesome switches keyboard using xcb bindings.
When I switch to the barrier client screen it all works as expected (I can type and I can switch layout on client) if I was in english layout on the server side.
But if I switch to the client with russian layout selected on the server I can only input russian text on the client side and layout switch doesn't work (or I can't type at all).
I think I've nailed this down when russian layout is chosen there is extra 0x2000 state flag set. I didn't find its meaning perhaps it's part of layout group index.
So when I press 'F' on the server with english I got this:
With russian locale (and input does not work on the client side):
Client message:
Dirty hack with ignoring 0x2000 state flag helped me, see
cf4fc3334aUbuntu's 16.04 Unity host
In general problem is the same, barrier is sending current layout keysym. But in this case unity does not use 0x2000 state flag. Keysym mapping occurs inside xcb internals.
Here is simple program:
In case of unity16.04 result depends on the current layout chosen. In Awesome and in ubuntu 18.04 it doesn't (according to xev they both use 0x2000 flag). So perhaps it's problem of unity16.04.
Other info
Who is responsible for layout switch client or server? Should barrier server send keycodes to the client with respect to the current server's layout?
Currently I'm happy with my patch it forces barrier to send english keysyms and X11 on the client side translates it to the client's layout.
Anyway I would like to see a clean solution to this problem that would be applied to upstream version.
@github-actions[bot] commented on GitHub (Sep 26, 2020):
This issue has been automatically marked as stale due to inactivity. It will be closed if no further activity occurs. Thank you for your contributions.