Как я могу получить абсолютные координаты сенсорной панели

Насколько я понимаю, более ранние версии драйвера Synaptic в Ubuntu имели «абсолютный режим» для трекпада, который позволял пользователю получать доступ к абсолютным координатам, а также к относительным координатам. Однако Synaptic решил удалить его (не знаю почему), и он больше не доступен. Есть ли способ получить доступ к абсолютному режиму в Ubuntu 20.04 LTS? Я бы хотел получить эти координаты в программе на C / C ++, но открыт для любых других решений (Rust, сценарий оболочки, все, что работает). Я встречал похожие сообщения, но все еще не могу найти удовлетворительного решения. Большинство рекомендуют драйвер evtest, который поддерживает абсолютный спортивный режим, но не имеет других функций (прокрутка двумя пальцами и т. Д.). Я думаю, что возврат к более старой версии драйвера Synaptic может помочь, но хотел знать, что я упускаю. Я имею в виду, есть ли какие-то важные функции в более свежем драйвере Synaptic, которых нет в старом с абсолютным режимом?

Редактировать: Я немного покопался и наткнулся на эту страницу -> http://manpages.ubuntu.com/manpages/bionic/man1/python-evdev.1.html

Он показывает, как использовать Python библиотека, evdev, и как ее использовать для доступа к системным событиям ввода. Следуя примерам, я настроил его так, чтобы отслеживать события на трекпаде, и, двигая пальцем, я получил целую стену информации, которую, к сожалению, не понял. Я заметил такие термины, как ABS_X, ABS_Y, но ничего не понял. Тем не менее, похоже, что я могу получить доступ к большому количеству информации о трекпаде через эту библиотеку, включая что-то, что связано с абсолютными координатами.Как мне использовать эту информацию? Может ли кто-нибудь показать мне, как написать простую функцию Python, используя evdev

def foo():
    ...
    return (x,y)

, где (x, y) представляет положение моего пальца на трекпаде?

Edit 2: Пример вывода evdev, отслеживающего мой трекпад. Можно ли что-нибудь из этого использовать для получения абсолютных координат?

absolute axis event at 1623586006.216310, ABS_MT_TRACKING_ID 
absolute axis event at 1623586006.216310, ABS_MT_POSITION_X 
absolute axis event at 1623586006.216310, ABS_MT_POSITION_Y 
absolute axis event at 1623586006.216310, ABS_MT_PRESSURE 
key event at 1623586006.216310, 330 (BTN_TOUCH), down
absolute axis event at 1623586006.216310, ABS_X 
absolute axis event at 1623586006.216310, ABS_Y 
absolute axis event at 1623586006.216310, ABS_PRESSURE 
key event at 1623586006.216310, 325 (BTN_TOOL_FINGER), down
synchronization event at 1623586006.216310, SYN_REPORT 
absolute axis event at 1623586006.231209, ABS_MT_PRESSURE 
absolute axis event at 1623586006.231209, ABS_PRESSURE
1
задан 14 June 2021 в 22:30

0 ответов

Другие вопросы по тегам:

Похожие вопросы: