有人知道是怎么回事么?第一次入双模键盘,还以为是键盘问题,换了一块还是一样的。才发现在有线模式在 Windows 下是完全Ok 的。而且在蓝牙模式下按键又是完全ok的。
不知道这个和什么有关系,请大神指教。
本人是 Manjaro , 换了同事的 Linux mint 也是一样的。
离线
键盘是 凯酷 KC84, 换了块 KC87 也是一样的问题。
离线
什么硬件?
离线
是说PC 硬件么?台机是组装机。 笔记本是 Huawei Matebook 14
离线
是说PC 硬件么?台机是组装机。 笔记本是 Huawei Matebook 14
它们俩都有这个问题?
离线
我和你有相似的问题。我用的是 GS87D 104D。
首先从按键到生效的过程是这样的:scancode -> keycode -> keysym
然后我用 showkey 测试 scancode:
首先
# showkey --scancodes
然后依次按下 F1, F2, ..., F12
测试结果:
用 usb 连接的 GS87D 104D:
kb mode was UNICODE
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
0x9c
0xe0 0x4c
0xe0 0xcc
0xe0 0x54
0xe0 0xd4
0xe0 0x0b
0xe0 0x8b
0xe0 0x2d
0xe0 0xad
0xe0 0x58
0xe0 0xd8
0xe0 0x59
0xe0 0xd9
0xe0 0x10
0xe0 0x90
0xe0 0x22
0xe0 0xa2
0xe0 0x19
0xe0 0x99
0xe0 0x20
0xe0 0xa0
0xe0 0x2e
0xe0 0xae
0xe0 0x30
0xe0 0xb0
笔记本自带的工作正常的薄膜键盘:
kb mode was UNICODE
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
0x9c
0x3b
0xbb
0x3c
0xbc
0x3d
0xbd
0x3e
0xbe
0x3f
0xbf
0x40
0xc0
0x41
0xc1
0x42
0xc2
0x43
0xc3
0x44
0xc4
0x57
0xd7
0x58
0xd8
看起来在 usb 连接电脑的时候键盘发送了不同的 scancode 。
感觉可以修改 scancode -> keycode 或是 keycode -> keysym 的映射。
最近编辑记录 airmh (2020-08-01 17:58:20)
离线
另外,测试的时候在 GS87D 104D 上按下 Fn 键没有显示任何 scancode,奇怪。
离线
终于有跟我一样碰到问题的了。看来Linux下处理和Windows下处理不一样。这就是键盘的兼容问题了? 我的 cherry 单模键盘也没有这个问题。我再仔细研究一下。感谢 @airmh
离线
Fn 通常是不产生任何信号的。USB 键盘的 scancode 似乎和 AT 键盘不一样。
有问题的时候,那些键是对应到哪些键上了呢?
离线
终于有跟我一样碰到问题的了。看来Linux下处理和Windows下处理不一样。这就是键盘的兼容问题了? 我的 cherry 单模键盘也没有这个问题。我再仔细研究一下。感谢 @airmh
也终于有人能够清楚、明白、无歧义地描述事实,并提供可继续研究的数据了。
离线
Fn 通常是不产生任何信号的。USB 键盘的 scancode 似乎和 AT 键盘不一样。
有问题的时候,那些键是对应到哪些键上了呢?
用
$ xev | awk -F'[ )]+' '/^KeyPress/ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }'
做的测试结果是这样的
用 usb 连接的 GS87D 104D:
232 XF86MonBrightnessDown
233 XF86MonBrightnessUp
128 XF86LaunchA
212 XF86LaunchB
237 XF86KbdBrightnessDown
238 XF86KbdBrightnessUp
173 XF86AudioPrev
172 XF86AudioPlay
171 XF86AudioNext
121 XF86AudioMute
122 XF86AudioLowerVolume
123 XF86AudioRaiseVolume
正常的键盘:
67 F1
68 F2
69 F3
70 F4
71 F5
72 F6
73 F7
74 F8
75 F9
76 F10
95 F11
96 F12
离线
所以你按着 Fn 再按那些键,是不是就能得到 F1-F12 了呢?
离线
所以你按着 Fn 再按那些键,是不是就能得到 F1-F12 了呢?
不能。连 showkey 都不能捕获到 scancode。:|
离线
这……
离线
依云 说:所以你按着 Fn 再按那些键,是不是就能得到 F1-F12 了呢?
不能。连 showkey 都不能捕获到 scancode。:|
是的,就是 F1-F12 就没法用了。
离线