我有一些问题。每隔 3-5 秒,我从键盘输入的所有内容都会变成大写仅有的。我还有两种键盘布局:我们和UA。当发生大写时 - 我无法切换键盘布局(我使用 mod4 进行切换)。
这是我的 xmodmap 输出:
$ xmodmap
xmodmap: up to 3 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
我尝试过xmodmap -e "clear lock"
,但大写输入仍然会定期打开。我尝试以“硬件方式”禁用大写锁定键,在键盘触点之间放置绝缘体。但我没有帮助。
==更新==为了A#1
看,有粘性的Caps_Lock:
KeyPress event, serial 40, synthetic NO, window 0x2a00001,
root 0xaa, subw 0x0, time 30893676, (-254,229), root:(384,359),
state 0x2, keycode 39 (keysym 0x53, S), same_screen YES,
XLookupString gives 1 bytes: (53) "S"
XmbLookupString gives 1 bytes: (53) "S"
XFilterEvent returns: False
我在做什么?第一的,我运行florence
(虚拟键盘)并关闭 Caps_Lock 键。第二,我输入:xmodmap -e "clear lock"
。但这是非常肮脏的黑客:),你知道。它可以工作几分钟或几个小时。
答案1
您的钥匙很可能Shift被卡住了。尝试按下并释放您的Shift键(如果您有左键和右键,则两者都可以)。如果您没有注意到其他按键被卡住,这很可能是硬件问题。
当问题发生时,运行xterm -e xev
(您可能需要准备好图标或菜单条目,以便xev
只需单击鼠标即可启动)。当您按下xev
窗口中的某个键时,您将看到类似的输出
KeyPress event, serial 32, synthetic NO, window 0x3000001,
root 0xa5, subw 0x0, time 201838723, (221,316), root:(232,403),
state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
state 0x0
意味着没有修饰符。降低修饰符后Shift
,您会看到state 0x1
. Lock
(又名大写锁定)修饰符是state 0x2
;更一般地,当多个修饰符向下时,您将看到修饰符的按位掩码(例如,state 0x5
如果您同时向下Shift
(1)和Ctrl
(4))。如果问题仍然存在,请告诉我们输出如何xev
偏离您的预期。
答案2
我插入了 USB 键盘。在 GRUB 菜单中我添加了核心字符串:(i8042.nokbd
在 之后quiet
)。
另外,如果您需要在工作时关闭笔记本键盘,请使用x输入。
- 首先执行
xinput list
,然后找到带有 的行AT Translated Set 2 keyboard
。 - 然后
xinput list-props 'AT Translated Set 2 keyboard'
或使用 id (例如 14)xinput list-props 14
。 - 查找
Device Enabled
和xinput set-prop 'AT Translated Set 2 keyboard' 'Device Enabled' 0
/或使用 idxinput set-prop 14 134 0
。