Я столкнулся с гораздо более простым вариантом этой проблемы :при преобразовании дополнительных клавиш на моей мыши в комбинации кнопок клавиатуры/мыши -, чтобы разрешить их привязку в оконном менеджере для перемещения/изменения размера окон. Возможно, мой код может послужить вам отправной точкой:
https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c
Суть идеи в том, что он захватывает события ввода с устройства /dev/input/...
моей мыши, опционально модифицирует их и записывает обратно в /dev/uinput
.