Можно ли определить, когда устройство 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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