Barrier: 服务器和客户端之间的键盘布局错误

创建于 2018-09-22  ·  4评论  ·  资料来源: debauchee/barrier

操作系统

服务器:Windows 10

客户:Arch Linux

屏障版

2.1.0

重现错误的步骤

  1. 在服务器上将键盘布局设置为 IT (Windows 10)
  2. 在客户端 (Arch Linux) 上将键盘布局设置为 IT
  3. 错误:屏障恢复为在客户端(Arch Linux)上使用 EN 键盘布局

其他信息

  • 问题是什么时候开始出现的? 总是
  • 有没有办法解决它? 我不知道
  • 此错误是否会阻止您完全使用 Barrier? 不完全是,但键盘布局错误很烦人

最有用的评论

我认为这是因为 XTEST 扩展用于传递击键,并且它有自己的虚拟键盘。 如果您运行xinput list您可以看到这一点:

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Broadcom Corp. Bluetooth USB Host Controller  id=11   [slave  pointer  (2)]
⎜   ↳ bcm5974                                   id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Broadcom Corp. Bluetooth USB Host Controller  id=10   [slave  keyboard (3)]

这可以使用setxkbmap -device N修复,其中N是此列表中的设备编号。
我现在通过将以下内容放入我的.xinitrc解决了这个问题:

setxkbmap -device `xinput list | grep "Virtual core XTEST keyboard" | sed -e 's/.\+=\([0-9]\+\).\+/\1/'` us colemak

这将它设置为布局我们,变体 colemak。 您可以通过发出setxkbmap -query为您的系统计算出正确的值以及任何-option设置。

所有4条评论

我认为这是因为 XTEST 扩展用于传递击键,并且它有自己的虚拟键盘。 如果您运行xinput list您可以看到这一点:

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Broadcom Corp. Bluetooth USB Host Controller  id=11   [slave  pointer  (2)]
⎜   ↳ bcm5974                                   id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Broadcom Corp. Bluetooth USB Host Controller  id=10   [slave  keyboard (3)]

这可以使用setxkbmap -device N修复,其中N是此列表中的设备编号。
我现在通过将以下内容放入我的.xinitrc解决了这个问题:

setxkbmap -device `xinput list | grep "Virtual core XTEST keyboard" | sed -e 's/.\+=\([0-9]\+\).\+/\1/'` us colemak

这将它设置为布局我们,变体 colemak。 您可以通过发出setxkbmap -query为您的系统计算出正确的值以及任何-option设置。

真的很好奇:如果我将你的方法与us布局一起使用,即

setxkbmap -device `xinput list | grep "Virtual core XTEST keyboard" | sed -e 's/.\+=\([0-9]\+\).\+/\1/'` us

我得到正确的it布局(重音字母除外,但这不是问题)。
如果我设置了it布局,那是完全错误的。

无论如何,非常感谢您的解决方法!

现在它也可以与it ,重新启动后...

太棒了!,几年前我在寻找这个解决方案时没有运气。 非常感谢!

此页面是否有帮助?
0 / 5 - 0 等级