服务器:Windows 10
客户:Arch Linux
2.1.0
我认为这是因为 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
,重新启动后...
太棒了!,几年前我在寻找这个解决方案时没有运气。 非常感谢!
最有用的评论
我认为这是因为 XTEST 扩展用于传递击键,并且它有自己的虚拟键盘。 如果您运行
xinput list
您可以看到这一点:这可以使用
setxkbmap -device N
修复,其中N
是此列表中的设备编号。我现在通过将以下内容放入我的
.xinitrc
解决了这个问题:这将它设置为布局我们,变体 colemak。 您可以通过发出
setxkbmap -query
为您的系统计算出正确的值以及任何-option
设置。