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

Chr*_*ton 6 10.10 keyboard compiz

一天几次,我会输入一些东西并意识到我不能输入空格。通常,当我按下空格键时,光标会闪烁,而且我可以尽我所能输入所有其他字母。如果我在终端中,光标会从一个实心方块变成一个空方块,直到我松开空格键。

出于某种原因,使用 alt-F2 重新启动 compizcompiz修复它,直到它下一次发生。

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

自从我升级到特立独行之前,这种情况已经发生了一段时间,但感觉它变得更加频繁。它似乎真的没有任何模式。

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

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

编辑:

using 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
Run Code Online (Sandbox Code Playgroud)

但是当它停止按空格键的行为时,会给出三个事件:

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 
Run Code Online (Sandbox Code Playgroud)

进一步编辑:

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

我有一个启动窗口选择器的热角,我已经自定义了窗口选择,以便左键单击进入一个窗口,右键单击关闭一个窗口,空格键放大一个。当我去到这个热门角落时,compiz 必须控制我的空格键,并且在我离开窗口选择器时显然不会将其归还。

所以我将提交一个针对 compiz 的错误。

报道:这里

msw*_*msw 4

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

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

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