Чтобы отсортировать различные уровни ядра: USB-слой идентифицирует вашу мышь как устройство HID (устройство интерфейса человека), а с помощью дескриптора HID автоматически преобразует события USB во входные события (что вы видите на /dev/input/eventX
). Затем эти входные события читаются драйвером X evdev
и преобразуются в события X (или, если вы используете Wayland, через интерфейс выполняется нечто подобное libinput
), которое затем интерпретируется GIMP и т. Д.
Вы можете просто написать, /dev/input/eventX
чтобы имитировать событие. Формат описан в struct
исходных файлах ядра ( include/uapi/linux/input.h
и include/uapi/linux/input-event-codes.h
). evtest
переводит, так что вы также можете сравнить с hexdump -C /dev/input/eventX
.
Вы также можете смоделировать событие X с помощью различных инструментов. Вы не можете смоделировать событие USB.
Время - это время, когда было создано событие, а не время процесса (что вы используете time
).