C/C++: отключить мышь в Linux (X11 — xinput)

Я хочу программно включать и отключать мышь в Linux с помощью C/C++. Существует расширение ввода для X11, которое позволяет сделать это с помощью команды терминала:

xinput set-int-prop "<device name>" "Device Enabled" 8 0

Это отлично работает, но я хочу сделать это напрямую, используя библиотеку. Я не могу найти подходящей документации по libxi (библиотека расширения ввода X11), а файлы заголовков в /usr/include/X11 также не предоставляют никаких полезных функций. Кто-нибудь может мне с этим помочь?


person goocreations    schedule 03.10.2014    source источник


Ответы (1)


Вы понимаете, что xinput имеет открытый исходный код, верно? :) Вот исходное дерево.

Кажется, все сводится к вызову XIChangeProperty().

Вероятно, вы можете прочитать код более внимательно, чем я, и, конечно же, страницу руководства, чтобы выяснить необходимые аргументы.

person unwind    schedule 03.10.2014
comment
Ааа, спасибо, как-то пропустил эту функцию. Буду копаться в коде. У вас случайно нет ссылки на пример, который использует это для отключения устройства? Я нашел пару примеров, но ни один из них не объясняет правильно параметры и не иллюстрирует, как включать/отключать устройства. Если нет, я просто просмотрю код в программе xinput. - person goocreations; 03.10.2014
comment
Нет, я редко программирую X11 напрямую, поэтому у меня ничего нет. Я больше борода GTK+. :) Исходник xinput был коротким, вы легко сможете в нем разобраться. Не забывайте и о документации. - person unwind; 03.10.2014
comment
Спасибо. Я сделаю это. - person goocreations; 03.10.2014
comment
Кроме того, команда ltrace была бы очень полезна для отладки xinput и определения того, что выполняется при включении/отключении мыши. - person RaFD; 03.10.2014