Π‘ΡΠ·Π΄Π°Π΄Π΅Π½ Π΅ ΠΏΠΎΡΡ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Synaptics X.org, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΡΡΡ ΡΡΠ΅Π΄ΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Wayland. ΠΠΎΡΡΡΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡ X.org API, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ X.org Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π²ΡΠ² ΡΠΎΠ½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΅ΠΌΡΠ»Π°ΡΠΎΡ Π½Π° ΠΌΠΈΡΠΊΠ° IBM ScrollPoint ΡΡΠ΅Π· uinput. Π’ΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π» Π΅ ΠΈΠ·Π±ΡΠ°Π½, Π·Π°ΡΠΎΡΠΎ libinput Π²ΠΊΠ»ΡΡΠ²Π° Ρ Π°ΠΊΠΎΠ²Π΅ Π·Π° ΠΏΠ»Π°Π²Π½ΠΎ ΡΠΊΡΠΎΠ»ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (Π΅ΠΌΡΠ»ΠΈΡΠ°Π½Π°ΡΠ° ΠΌΠΈΡΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° IBM TrackPoint, Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ»Π΅Π»ΠΎ Π·Π° ΡΠΊΡΠΎΠ»ΠΈΡΠ°Π½Π΅ Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΎΡΠΌΠ΅ΡΠΊΠΈ).
ΠΠ΅ΠΊΠ° ΠΏΠΎΡΠΎΠΊΡΡ ΠΎΡ ΡΡΠ±ΠΈΡΠΈΡ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π²Ρ ΠΎΠ΄ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°: kernel -> evdev -> [synaptics -> waynaptics] -> uinput -> kernel -> evdev -> libinput -> wayland-composer. Π Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΡΡΠ²ΡΡ Π£ΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Π»Π΅ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ Π·Π° Π΅ΠΌΡΠ»ΠΈΡΠ°Π½Π°ΡΠ° ΠΌΠΈΡΠΊΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎ Π²Π΅ΡΠ΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΎΡ Synaptics. ΠΠ·Ρ ΠΎΠ΄ΡΡ Π½Π° synclient Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΡ X11 ΡΠ΅ΡΠΈΡΡΠ°, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ Π²ΡΠ² ΡΠ°ΠΉΠ», ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
ΠΠΎΡΠΎΡΠ΅Π½Π°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ° Π΅, ΡΠ΅ 11 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΠ»Π΅Π΄ ΠΏΡΡΠ²ΠΎΡΠΎ ΡΠΈ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, libinput Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π°Π» ΠΏΠ°ΡΠΈΡΠ΅Ρ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π½Π° Snaptics ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π±ΡΠΎΡ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅, Π° Π΄Π΅ΡΠΊΡΠΎΠΏ ΡΡΠ΅Π΄ΠΈΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° ΡΠ΅ Π½Π°ΡΡΠΈΠ»ΠΈ Π΄Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎΡΠΈ Π΄ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
