是什么原因导致我的空格键随机停止工作?

是什么原因导致我的空格键随机停止工作?

每天有几次,我在输入内容时发现自己无法输入空格。通常,当我按下空格键时,光标会闪烁,而我可以输入我所知的所有其他字母。如果我在终端中,光标会从实心方块变成空方块,直到我释放空格键。

由于某种原因,使用 alt-F2 重新启动 compizcompiz可以修复此问题,直到下次出现此问题。

我仍然可以从已经有空格的源中复制和粘贴空格,并且仍然可以使用 ctrl-shift-u、20、enter 插入空格。

这种情况已经发生一段时间了,在我升级到 maverick 之前,但感觉它变得越来越频繁。它似乎真的没有任何规律。

我在 system76 panp7 笔记本电脑上使用 64 位 ubuntu 10.10。

有什么想法可以帮我解决问题吗?

编辑:

使用xev,通常空格键注册为:

KeyPress event, serial 36, synthetic NO, window 0x5600001,
    root 0x101, subw 0x0, time 26488647, (88,403), root:(748,458),
    state 0x10, keycode 65 (keysym 0x20, space), same_screen YES,
    XLookupString gives 1 bytes: (20) " "
    XmbLookupString gives 1 bytes: (20) " "
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x5600001,
    root 0x101, subw 0x0, time 26488729, (88,403), root:(748,458),
    state 0x10, keycode 65 (keysym 0x20, space), same_screen YES,
    XLookupString gives 1 bytes: (20) " "
    XFilterEvent returns: False

但是当它停止运行时,按下空格键会产生三个事件:

FocusOut event, serial 36, synthetic NO, window 0x5600001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 36, synthetic NO, window 0x5600001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 36, synthetic NO, window 0x0,
    keys:  2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 

进一步编辑:

好的,我认为我已经解决了这个问题,我的意思是我现在知道要针对哪个包提交错误。

我有一个启动窗口选择器的热点角,并且我已经自定义了窗口选择,以便左键单击可以转到一个窗口,右键单击可以关闭一个窗口,然后空格键放大其中一个。当我转到这个热点角时,compiz 必须控制我的空格键,而且当我离开窗口选择器时,它显然不会归还它。

因此我将针对 compiz 提交一个错误。

报告:这里

答案1

NotifyGrab 就是一个明显的线索。我唯一一次看到这种情况是当窗口管理器有一个全局绑定取代窗口本身时。

如果您启动xev并进入窗口并按下PrtScn窗口管理器安排处理 PrtScn 的位置,您可以清楚地看到这一点。为了做到这一点,X 事件模型必须使用 NotifyGrab 事件将 FocusOut 从当前窗口移出,以便管理器可以对输入采取行动。

现在,至于如何将空格键或 v 键绑定到窗口管理器操作,这是一个不同的且更难的问题。

答案2

我有同样的问题,但我的小写 Q。Ubuntu 10.04 x-org-edgers...问题出在 Compiz,我已将其禁用后,我的 q 键又可以工作了。

相关内容