Score:3

How can I get absolute touchpad coordinates

ธง ae

From what I understand, earlier versions of the Synaptic driver in Ubuntu had an 'absolute mode' for the trackpad which allowed the user to access absolute coordinates as well as relative coordinates. However, Synaptic decided to remove it(not sure why) and its no longer available. Is there any way to access the absolute mode in Ubuntu 20.04 LTS? I'd like to be able to get these coordinates in a C/C++ program but open to any other solutions (Rust, shell script, whatever works). I've come across similar posts but I'm still unable to find a satisfactory solution. Most recommend the evtest driver which does sport absolute mode but lacks other features(2 finger scrolling, etc.). I'm thinking reverting back to an older version of the Synaptic driver might help but wanted to know what I'd be missing out on. I mean, are there any important features in the more recent Synaptic driver that the old one with absolute mode doesn't?

Edit: I did a bit more digging and came across this page --> http://manpages.ubuntu.com/manpages/bionic/man1/python-evdev.1.html

It shows how to use a Python library, evdev, and how to use it to access system input events. Following the examples, I set it to watch my trackpad events and upon moving my finger I got a whole wall of information which unfortunately, I didn't understand. I did notice terms like ABS_X, ABS_Y but couldn't make anything of it. Regardless, it appears that I can access a lot of trackpad information through this library including something to do with absolute coordinates. How do I use this information? Can anyone show me how to write a simple Python function using evdev

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

where (x,y) represents my finger postion on the trackpad?

Edit 2: Sample output of evdev monitoring my trackpad. Can any of this be used to get absolute coordinates?

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
Pilot6 avatar
cn flag
ขึ้นอยู่กับฮาร์ดแวร์ ไดรเวอร์อุปกรณ์ส่งพิกัดสัมบูรณ์หรือสัมพัทธ์ คุณยังสามารถรับข้อมูลดิบได้ แต่ขึ้นอยู่กับวิธีการเชื่อมต่ออุปกรณ์ด้วย: i2c หรือ ps2
Score:0
ธง mz

ใช้

    >>>พิมพ์(เหตุการณ์)
    เหตุการณ์ที่ 1337197425.477827 รหัส 04 พิมพ์ 04 วาล 458792

ตอนนี้คุณส่งออกไฟล์ การประทับเวลา และ รหัส, แต่ วาล ควรเป็นผู้ประสานงานของคุณ ดู https://python-evdev.readthedocs.io/en/latest/_modules/evdev/events.html.

n00dles avatar
ae flag
ดังนั้น val มี 1 ค่า? ฉันจะรับพิกัดทั้งสองได้อย่างไร
mz flag
แน่นอน คุณต้องมีสองเหตุการณ์: ABS_MT_POSITION_X และ ABS_MT_POSITION_Y https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา