Как включить прокрутку при нажатии средней кнопки сенсорной панели?

У меня есть Lenovo ThinkPad Yoga, который оснащен сенсорной панелью. Я хочу включить прокрутку с помощью средней кнопки сенсорной панели. Итак, я хочу иметь возможность прокручивать, скажем, редактор, нажав и удерживая среднюю кнопку, а затем перемещая мышь в направлении прокрутки. Я настроил эту сенсорную панель таким образом, чтобы распознавались три программные кнопки, соответствующие кнопкам мыши 1, 2 и 3. Конфигурация synaptics выглядит следующим образом:

Section "InputClass"
    Identifier "Default clickpad buttons"
    MatchDriver "synaptics"
    Option "SoftButtonAreas" "64% 0 1 42% 36% 64% 1 42%"
    Option "AreaBottomEdge" "1"
EndSection

Список устройств xinput (xinput --list) выглядит следующим образом:

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=9    [slave  pointer  (2)]
⎜   ↳ Wacom ISDv4 EC Pen stylus                 id=11   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=13   [slave  pointer  (2)]
⎜   ↳ Wacom ISDv4 EC Pen eraser                 id=15   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=16   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Integrated Camera                         id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=14   [slave  keyboard (3)]

Список свойств xinput для устройства джойстика (xinput) --list-props "TPPS / 2 IBM TrackPoint") выглядит следующим образом:

Device 'TPPS/2 IBM TrackPoint':
    Device Enabled (134):   1
    Coordinate Transformation Matrix (136): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (262): 0
    Device Accel Constant Deceleration (263):   1.000000
    Device Accel Adaptive Deceleration (264):   1.000000
    Device Accel Velocity Scaling (265):    10.000000
    Device Product ID (251):    2, 10
    Device Node (252):  "/dev/input/event15"
    Evdev Axis Inversion (266): 0, 0
    Evdev Axes Swap (268):  0
    Axis Labels (269):  "Rel X" (144), "Rel Y" (145)
    Button Labels (270):    "Button Left" (137), "Button Middle" (138), "Button Right" (139), "Button Wheel Up" (140), "Button Wheel Down" (141), "Button Horiz Wheel Left" (142), "Button Horiz Wheel Right" (143)
    Evdev Middle Button Emulation (271):    0
    Evdev Middle Button Timeout (272):  50
    Evdev Third Button Emulation (273): 0
    Evdev Third Button Emulation Timeout (274): 1000
    Evdev Third Button Emulation Button (275):  3
    Evdev Third Button Emulation Threshold (276):   20
    Evdev Wheel Emulation (277):    1
    Evdev Wheel Emulation Axes (278):   6, 7, 4, 5
    Evdev Wheel Emulation Inertia (279):    10
    Evdev Wheel Emulation Timeout (280):    200
    Evdev Wheel Emulation Button (281): 2
    Evdev Drag Lock Buttons (282):  0

Список свойств xinput для устройства с сенсорной панелью (xinput --list-props "SynPS / 2 Synaptics TouchPad") следующим образом:

Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (134):   1
    Coordinate Transformation Matrix (136): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (262): 1
    Device Accel Constant Deceleration (263):   2.500000
    Device Accel Adaptive Deceleration (264):   1.000000
    Device Accel Velocity Scaling (265):    12.500000
    Synaptics Edges (308):  1768, 5414, 1638, 4466
    Synaptics Finger (309): 25, 30, 0
    Synaptics Tap Time (310):   180
    Synaptics Tap Move (311):   235
    Synaptics Tap Durations (312):  180, 180, 100
    Synaptics ClickPad (313):   1
    Synaptics Middle Button Timeout (314):  0
    Synaptics Two-Finger Pressure (315):    282
    Synaptics Two-Finger Width (316):   7
    Synaptics Scrolling Distance (317): 107, 107
    Synaptics Edge Scrolling (318): 0, 0, 0
    Synaptics Two-Finger Scrolling (319):   1, 1
    Synaptics Move Speed (320): 1.000000, 1.750000, 0.037293, 0.000000
    Synaptics Off (321):    0
    Synaptics Locked Drags (322):   0
    Synaptics Locked Drags Timeout (323):   5000
    Synaptics Tap Action (324): 2, 3, 0, 0, 1, 3, 0
    Synaptics Click Action (325):   1, 3, 0
    Synaptics Circular Scrolling (326): 0
    Synaptics Circular Scrolling Distance (327):    0.100000
    Synaptics Circular Scrolling Trigger (328): 0
    Synaptics Palm Detection (329): 0
    Synaptics Palm Dimensions (330):    10, 200
    Synaptics Coasting Speed (331): 20.000000, 50.000000
    Synaptics Pressure Motion (332):    30, 160
    Synaptics Pressure Motion Factor (333): 1.000000, 1.000000
    Synaptics Resolution Detect (334):  1
    Synaptics Grab Event Device (335):  1
    Synaptics Gestures (336):   1
    Synaptics Capabilities (337):   1, 0, 0, 1, 1, 1, 1
    Synaptics Pad Resolution (338): 55, 53
    Synaptics Area (339):   0, 0, 0, 1
    Synaptics Soft Button Areas (340):  4184, 0, 1, 2788, 2997, 4184, 1, 2788
    Synaptics Noise Cancellation (341): 8, 8
    Device Product ID (251):    2, 7
    Device Node (252):  "/dev/input/event10"

Пример вывода xev для использования кнопки выглядит следующим образом:

ButtonPress event, serial 40, synthetic NO, window 0x5200001,
    root 0x9e, subw 0x0, time 17803214, (103,77), root:(1845,126),
    state 0x0, button 2, same_screen YES

ButtonRelease event, serial 40, synthetic NO, window 0x5200001,
    root 0x9e, subw 0x0, time 17803294, (103,77), root:(1845,126),
    state 0x200, button 2, same_screen YES

Буду признателен за любые рекомендации, которые вы могли бы дать при включении прокрутки средней кнопкой. Спасибо!

РЕДАКТИРОВАТЬ: Я приобрел внешнюю USB-клавиатуру ThinkPad, которая оснащена джойстиком TrackPoint и тремя выделенными кнопками мыши. Я успешно выполнил операции прокрутки вверх и прокрутки вниз с помощью этой клавиатуры и записал соответствующий вывод xev.

Ниже приводится вывод xev для успешной операции прокрутки вверх:

ButtonPress event, serial 40, synthetic NO, window 0x4c00001,
    root 0x9e, subw 0x4c00002, time 53834970, (55,63), root:(1797,1083),
    state 0x0, button 5, same_screen YES

EnterNotify event, serial 40, synthetic NO, window 0x4c00001,
    root 0x9e, subw 0x0, time 53834946, (55,63), root:(1797,1083),
    mode NotifyGrab, detail NotifyInferior, same_screen YES,
    focus YES, state 4096

KeymapNotify event, serial 40, synthetic NO, window 0x0,
    keys:  4294967198 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

ButtonRelease event, serial 40, synthetic NO, window 0x4c00001,
    root 0x9e, subw 0x4c00002, time 53834970, (55,63), root:(1797,1083),
    state 0x1000, button 5, same_screen YES

LeaveNotify event, serial 40, synthetic NO, window 0x4c00001,
    root 0x9e, subw 0x0, time 53834946, (55,63), root:(1797,1083),
    mode NotifyUngrab, detail NotifyInferior, same_screen YES,
    focus YES, state 0

Ниже приводится вывод xev для успешной операции прокрутки вниз:

ButtonPress event, serial 40, synthetic NO, window 0x4c00001,
    root 0x9e, subw 0x4c00002, time 53829778, (55,63), root:(1797,1083),
    state 0x0, button 5, same_screen YES

EnterNotify event, serial 40, synthetic NO, window 0x4c00001,
    root 0x9e, subw 0x0, time 53829754, (55,63), root:(1797,1083),
    mode NotifyGrab, detail NotifyInferior, same_screen YES,
    focus YES, state 4096

KeymapNotify event, serial 40, synthetic NO, window 0x0,
    keys:  4294967198 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

ButtonRelease event, serial 40, synthetic NO, window 0x4c00001,
    root 0x9e, subw 0x4c00002, time 53829778, (55,63), root:(1797,1083),
    state 0x1000, button 5, same_screen YES

LeaveNotify event, serial 40, synthetic NO, window 0x4c00001,
    root 0x9e, subw 0x0, time 53829754, (55,63), root:(1797,1083),
    mode NotifyUngrab, detail NotifyInferior, same_screen YES,
    focus YES, state 0

Итак, с этой дополнительной информацией, будут ли у кого-нибудь из вас, добрых, умных людей, какие-либо советы о том, как установить прокрутку такого типа на моем маленьком ThinkPad? :)

2
задан 1 February 2014 в 22:19

1 ответ

Вы пытались xinput установить, как ссылка, упомянутая в этой теме ? Распознанное устройство TPPS/2 IBM TrackPoint - именно то, что там объяснено.

0
ответ дан 1 February 2014 в 22:19

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

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