gpt4 book ai didi

python - Python (Linux) 中的多媒体键

转载 作者:太空狗 更新时间:2023-10-29 21:09:40 27 4
gpt4 key购买 nike

我想使用 Python 检测键盘上的 XF86Launch1 键何时被按下。

我有一个带有蓝牙连接键盘的 headless 服务器。我想在按下特定的多媒体键时启动命令行程序。

目前,我正在使用:

import sys
import tty, termios

def getch():
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(fd)
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
return ch

print getch()

但它不会检测多媒体键。当我按下它们时,什么也没有打印出来。

有没有办法在 headless 的 Ubuntu 盒子上检测这些键 - 或者有更好的方法来在按键上启动程序?

最佳答案

与其尝试读取 tty 的标准输入,不如使用 linux 的输入设备 api 来读取它们。

在 linux 上,所有输入设备都显示为 /dev/input 下的一个文件(例如 /dev/input/event0),当一个 读取()s 从这些文件中返回指示何时按下和释放键的结构化数据。

在 C 中,libevdev库提供了一个包装器。在 python 中,您可以使用 python-evdev library .也应该可以直接从输入设备读取(尽管您可能需要仔细阅读内核文档和源代码才能正确处理)。

关于python - Python (Linux) 中的多媒体键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35526182/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com