LINUX.ORG.RU

Достучаться программно до ноутбучного тачпада (написать свой драйвер?)

 , ,


0

2

Хочу я получать координаты касаний от тачпада, и вообще попробовать всячески поиграться с его поведением. Например, по дефолту он ведёт себя как курсор - а что если я хочу ему какой-то магией направления just for lulz инвертировать (т.е. веду вверх - курсор бежит вниз и т.п.)? Готового софта советовать не надо (если только в его исходниках нет чего-нибудь полезного по моему вопросу), ибо цели у этих деяний никакой нет - хочется просто посмотреть, как можно властвовать над этой конкретной железкой.
P.S. Возможно, поигравшись, какие-то «жесты» полезные на него повесить... Но только всё своими руками хочу сделать.
P.P.S. Если можно через линуксовый готовый драйвер (или что-то подобное, который сейчас за тачпад отвечает) получать координаты касаний и тому подобное, задавать своё поведение - тоже подскажите как, буду весьма признателен, хоть и нет такого фана



Последнее исправление: evilmanul (всего исправлений: 2)

Ответ на: комментарий от Stil

Да, спасибо, уже нагуглил. Но как с его помощью хотя-бы координаты вырвать - ума не приложу, опыта взаимодействия с подобным никакого нет.

evilmanul
() автор топика

just for lulz инвертировать

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "InvertX" "on"
        Option "InvertY" "on"
EndSection
disarmer ★★★
()
Ответ на: комментарий от disarmer

Спасибо, добрый человек. А координаты получить, или задать кастомную ракцию на нажатие и другие действия как-то нельзя, может пытался? Наппример, двойным касанием эмулировать какое-то сочетание клавиш...

evilmanul
() автор топика
Ответ на: комментарий от evilmanul

Не пытался, но если именно сам хочешь сделать, то есть, как минимум, два варианта: читать напрямую из устройства и пытаться парсить(например sudo cat /dev/input/by-path/platform-i8042-serio-1-mouse), либо читать доки как написать нормальный драйвер.

Из готового есть какая то утилита конфигурации, которая умеет жесты, кажется synaptics

disarmer ★★★
()

сам по себе тачпад — это, как правило, нечто воткнутое в ps/2, реализующее какой-нибудь извратный протокол на базе imps/2. например, у меня это elantech — см. http://lxr.free-electrons.com/source/drivers/input/mouse/elantech.c

как это использовать из юзерспейса? все драйверы типа описанного выше используют инфраструктуру, называющуюся evdev. про неё читать надо в http://lxr.free-electrons.com/source/include/uapi/linux/input.h и https://www.kernel.org/doc/Documentation/input/event-codes.txt

открываешь нужный файл в /dev/input/event* и читаешь оттуда struct input_event.

для тестирования рекомендую evtest: http://cgit.freedesktop.org/evtest/

anonymous
()
Ответ на: комментарий от anonymous

да, надо добавить, что написать на этом для тачпада драйвер мышки (с правильным ускорением, виртуальными кнопками и т.д.) это уже вполне занимательная задача.

а инверсия осей у тебя в процессе сама пару раз успешно получится, отдельно к этому можно и не стремиться.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.