每当我在终端(或我的 .bashrc)中使用 setxkbmap 时,下次按下任何修饰键(ctrl、shift、alt)时,键盘上的 NumLock LED 就会熄灭,但 NumLock 本身仍然处于活动状态,因此它处于某种状态不一致的状态。
如果我现在按 NumLock,LED 将保持关闭状态,但 NumLock 会关闭,再按一次 NumLock 将再次打开数字键盘和 LED。奇怪的是,当 LED 处于这种不一致的状态时,按 Caps Lock 键会同时打开 NumLock 和 CapsLock LED。
我在 .bashrc 中的命令导致了这种情况,setxkbmap -option compose:ralt
但如果我发出不带参数的普通命令setxkbmap
,或者使用该命令执行其他任何操作,也会发生这种情况。
为什么会发生这种情况(我做错了什么吗)?
转储Xorg -version
(我正在运行 Xubuntu/XFCE):
X.Org X Server 1.7.6
Release Date: 2010-03-17
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.24-30-server x86_64 Ubuntu
Current Operating System: Linux xxxxx 2.6.32-41-generic #94-Ubuntu SMP Fri Jul 6 18:00:34 UTC 2012 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.32-41-generic root=UUID=xxxxx ro quiet splash
Build Date: 25 February 2012 06:57:33AM
xorg-server 2:1.7.6-2ubuntu7.11 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.16.4
答案1
好像这个报价解释一下:
警告。 setxkbmap 不仅将字母数字键更改为映射中给出的值;它还会将所有其他键重置为启动默认值。如果您已为 Windows 键或多媒体键指定了值,这些设置可能会丢失。
由于 Num Lock 键的默认视觉和系统(或“实际”)状态大概是离开,我猜这就是发生这种情况的原因。为什么系统状态未受影响,为什么只有在按下某些键时才会发生这种情况仍然是个谜。
答案2
这个错误很糟糕。我已向上游报告https://bugs.freedesktop.org/show_bug.cgi?id=78012。
只要您从脚本调用 setxkbmap,您就可以通过随后执行“numlockx off; numlockx on”来解决这个问题。但如果您使用桌面热键(例如 Alt+Shift),则无法执行此操作。