【问题标题】:Python Keyboard library not suppressing keystrokes on LinuxPython键盘库不抑制Linux上的击键
【发布时间】:2019-11-12 13:55:21
【问题描述】:

我正在制作一个脚本,使用称为keyboardPython 库将单个键(右-ctrl)重新映射到alt+tab。在windows 上使用Autohotkey 很容易做到这一点,但是,这在Linux 上似乎是不可能的。毕竟在keyboard 文档中他们有funcion(param, param, Suppress=False),所以它应该可以正常工作吗?

import keyboard

def altTab:
    keyboard.release(97)
    keyboard.send("alt+tab")

# 97 is the key_code for [right ctrl] on my system
keyboard.on_press_key(97, altTab, suppress=True)

 
我尝试从代码的角度释放密钥,但它似乎不起作用,因为ctrl+alt+tabalt+tab 不同。我还尝试使用keyboard.remap_key 函数将right ctrl 更改为right alt,并将right alt 更改为left alt,以便right alt 可以工作,然后只发送tab 而不是alt+tab,但它仍然不起作用。我正在使用Ubuntu Linux
请帮忙,我被难住了

【问题讨论】:

    标签: python keyboard keyboard-events hotkeys keyboard-hook


    【解决方案1】:

    你需要hook_key,即每次按下提供的键时调用提供的回调的方法:

    import keyboard
    
    def altTab(e):
        if e.event_type == "down":
            keyboard.release(97)
            keyboard.send("alt+tab")
    
    # 97 is the key_code for [right ctrl] on my system
    keyboard.hook_key(97, altTab, suppress=True)
    

    编辑:添加了仅处理按键的代码。

    【讨论】:

    • 虽然这确实有效,但它与 keyboard.on_release_key 基本上是一样的,这不是我想要的,我需要 keyboard.on_press_key,所以谢谢,但这不是我想要的对于
    • 这个答案对我也不起作用,因为它在按下(但显然不起作用)和发布时(这不是我想要的)都会触发
    • Docs 说它可以同时处理这两个问题。根据您的需要测试和更改 altTab 方法。
    • 还是不行,兄弟,这是keyboard.on_press_key 的草率(不是粗鲁或任何东西)版本(这不是你说的一次)
    • 我已经查看了pynput,但是,它需要一个活动的X server...我正在尝试使用x server 来实现此跨度>
    猜你喜欢
    • 1970-01-01
    • 2019-11-30
    • 2015-07-29
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    相关资源
    最近更新 更多