Можно ли определить, когда устройство uinput готово?Linux

Anonymous
Можно ли определить, когда устройство uinput готово?

Сообщение Anonymous »

Я пытаюсь имитировать ввод с клавиатуры на Wayland с помощью Gnome.
Рассмотрим следующий скрипт Python:

Код: Выделить всё

from evdev import UInput, ecodes as e

ui = UInput()
ui.write(e.EV_KEY, e.KEY_A, 1)
ui.write(e.EV_KEY, e.KEY_A, 0)
ui.syn()
ui.close()
  • Когда я запускаю это без sudo, выдает ошибку разрешения (как и ожидалось).
  • Когда я запускаю это с помощью sudo, он ничего не печатает.
Небольшая модификация этого скрипта заставляет его печатать, как ожидалось:

Код: Выделить всё

from evdev import UInput, ecodes as e
import time

ui = UInput()
time.sleep(5)
ui.write(e.EV_KEY, e.KEY_A, 1)
ui.write(e.EV_KEY, e.KEY_A, 0)
ui.syn()
ui.close()
К сожалению, для этого требуется ввести фиксированную пятисекундную задержку, что не идеально и, вероятно, ненадежно на разных системах.
Есть ли прямой способ блокировать скрипт до тех пор, пока UInput не будет готов?
Я просмотрел документацию, но не нашел ничего очевидного.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-is-ready

Вернуться в «Linux»