在device.leds()关闭led

时间:2019-05-26 18:23:01

标签: python evdev

我可以使用evdev读取NUML_LED状态。但是,如果我退出程序后在读取了LED之后抓住了设备,即使系统仍处于打开状态,LED也会熄灭。

import evdev

device = evdev.InputDevice('/dev/input/event3')

try:
    print(device.leds(verbose=True))
    print("Using device:\n" + str(device))
    device.grab()
except  (KeyboardInterrupt, SystemExit):
    pass

如果我只是做grab()device.leds()中的一个而没有另一个,则它们(如预期的那样)不会关闭。但是,调用这两种方式都会导致混乱。

编辑: 我刚刚意识到,当我退出LED时,如果LED_NUML和LED_CAPSL点亮,则当我按下num_lock或caps_lock时,另一个按钮的状态也会固定。

IE:

- LED_NUML and LED_CAPSL are on
- run script
- LED_NUML and LED_CAPSL are off
- press num_lock turns num_lock off (LED_NUML is already off so it stays off)
- LED_CAPSL turns on

1 个答案:

答案 0 :(得分:0)

这是不可能的。内核中有问题。正如ssieb在python evdev问题页面about this issue上所说。

  

释放设备后,将重新启动连接到该设备的所有处理程序。我的猜测是,有一些处理程序正在重置LED。