【问题标题】:Python Xlib.error.BadAccess on attempting to access X11 shortkeysPython Xlib.error.BadAccess 尝试访问 X11 快捷键
【发布时间】:2015-12-19 22:40:35
【问题描述】:

我正在尝试在后台运行的 Python 脚本中捕获快捷键(例如 Ctrl Alt direction key)。当我尝试这样做时,我遇到了错误。我的代码如下:

import Xlib
import Xlib.display

def process_event(event):

    keycode = event.detail
    if event.type == Xlib.X.KeyPress:
        print(keycode)

def main():

    # current display
    display    = Xlib.display.Display()
    rootWindow = display.screen().root

    # catch keypress events
    rootWindow.change_attributes(event_mask = Xlib.X.KeyPressMask)

    keys = [10, 11]

    for keycode in keys:
        rootWindow.grab_key(
            keycode,
            Xlib.X.Mod1Mask, #Xlib.X.AnyModifier,
            1,
            Xlib.X.GrabModeAsync,
            Xlib.X.GrabModeAsync
        )

    while True:
        event = rootWindow.display.next_event()
        process_event(event)

if __name__ == '__main__':
    main()

我得到的错误如下:

<class 'Xlib.protocol.request.QueryExtension'>
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 157, sequence_number = 10, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 157, sequence_number = 11, major_opcode = 33, minor_opcode = 0

【问题讨论】:

  • 我在 Ubuntu 14.04 上尝试运行 autokey-gtk 时得到了这一切。

标签: python x11 xlib


【解决方案1】:

这个错误是由于 xlib 上的重复键绑定而发生的。很可能其他应用程序已经在键绑定中使用它们。

我刚刚在我的 Unity 和 Kde 上测试了与您的键绑定类似的键绑定,但在我的 xfce4 上无法使用类似的错误。

X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 483, sequence_number 
= 10, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 483, sequence_number 
= 11, major_opcode = 33, minor_opcode = 0

更改键码或编辑其他应用程序键绑定(如果您知道哪个应用程序)将解决此问题。有时它是来自您桌面环境的应用程序。

对于其他人,同样的错误也可能由于错误的键码而发生。在问题中,它使用键码 10 和 11(正确值)。

【讨论】:

    猜你喜欢
    • 2019-12-01
    • 2023-03-09
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多