Lenovo Thinkpad: Touchpad mit 2-Finger Scrolling geht nicht.

dettus

Bicycle User
Kennt jemand das Problem?
Das zwei-Fingerscrolling vom Lenovo Touchpad funktioniert nicht.
Googlen hat mir irgendwie nur Tips fuer Linux und den Synaptics-Treiber ausgespuckt.
Der ist aber Deprecated, wscons ist der Treiber, der in meiner Xorg.conf auftaucht.

Touchpad und roter Boebbel werden auch richtig erkannt.
Aber das scrollen funktioniert irgendwie nicht out of the box.


Kann mal einer von euch an einem anderen Laptop gucken, was diese beiden Tools ausspucken?





Code:
dettus@oelmuehle> doas wsconsctl
doas (dettus@oelmuehle.deep.space) password:
keyboard.type=pc-xt
keyboard.bell.pitch=400
keyboard.bell.period=100
keyboard.bell.volume=50
keyboard.bell.pitch.default=400
keyboard.bell.period.default=100
keyboard.bell.volume.default=50
wsconsctl: Use explicit arg to view keyboard.map.
keyboard.repeat.del1=400
keyboard.repeat.deln=100
keyboard.repeat.del1.default=400
keyboard.repeat.deln.default=100
keyboard.ledstate=0
keyboard.encoding=us
keyboard.backlight=0.00%
mouse.type=touchpad
mouse.rawmode=1
mouse.scale=0,0,0,0,0,0,0
mouse.reverse_scrolling=0
mouse1.type=touch-panel
mouse1.rawmode=1
mouse1.scale=0,3528,0,1793,0,0,0
mouse1.reverse_scrolling=0
mouse2.type=ps2
mouse2.reverse_scrolling=0
display.type=inteldrm
display.width=3072
display.height=1920
display.depth=32
display.fontwidth=16
display.fontheight=32
display.emulations=vt100
display.screentypes=std
display.focus=4
display.brightness=100.00%
display.screen_on=250
display.screen_off=0
display.vblank=off
display.kbdact=on
display.msact=on
display.outact=on
dettus@oelmuehle> xinput
Virtual core pointer                        id=2    [master pointer  (3)]
    Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
   /dev/wsmouse0                               id=7    [slave  pointer  (2)]
   /dev/wsmouse1                               id=8    [slave  pointer  (2)]
   /dev/wsmouse                                id=9    [slave  pointer  (2)]
  Virtual core keyboard                       id=3    [master keyboard (2)]
    Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    /dev/wskbd                                  id=6    [slave  keyboard (3)]



Alternativ habe ich beim schreiben dieser Zeilen auch die Idee, die zweite "Maus" zum Scrollen zu verwenden, wenn jemand weiss wie?
 
Das ist meine Ausgabe openbsd7.6 auf t420:


Code:
# wsconsctl
keyboard.type=pc-xt
keyboard.bell.pitch=400
keyboard.bell.period=100
keyboard.bell.volume=50
keyboard.bell.pitch.default=400
keyboard.bell.period.default=100
keyboard.bell.volume.default=50
wsconsctl: Use explicit arg to view keyboard.map.
keyboard.repeat.del1=400
keyboard.repeat.deln=100
keyboard.repeat.del1.default=400
keyboard.repeat.deln.default=100
keyboard.ledstate=0
keyboard.encoding=de
keyboard.backlight=0.00%
keyboard1.type=usb
keyboard1.bell.pitch=400
keyboard1.bell.period=100
keyboard1.bell.volume=50
keyboard1.bell.pitch.default=400
keyboard1.bell.period.default=100
keyboard1.bell.volume.default=50
wsconsctl: Use explicit arg to view keyboard1.map.
keyboard1.repeat.del1=400
keyboard1.repeat.deln=100
keyboard1.repeat.del1.default=400
keyboard1.repeat.deln.default=100
keyboard1.ledstate=0
keyboard1.encoding=us.noencoding
keyboard1.backlight=0.00%
mouse.type=synaptics
mouse.rawmode=0
mouse.scale=1472,5888,1408,4820,0,75,105
mouse.reverse_scrolling=0
mouse.tp.tapping=0,0,0
mouse.tp.scaling=0.165
mouse.tp.swapsides=0
mouse.tp.disable=0
mouse.tp.edges=0.0,5.0,0.0,5.0
mouse1.type=ps2
mouse1.reverse_scrolling=0
mouse2.type=usb
mouse2.reverse_scrolling=0
display.type=inteldrm
display.width=1600
display.height=900
display.depth=32
display.fontwidth=12
display.fontheight=24
display.emulations=vt100
display.screentypes=std
display.focus=4
display.brightness=100.00%
display.screen_on=250
display.screen_off=0
display.vblank=off
display.kbdact=on
display.msact=on
display.outact=on

Ich hate es schon dass auf manchen Thinkpads das 2-Fingerscrollen unter debian gar nicht ging, auf anderen out of the box. Ich dachte halt, dass das am gerät liegt ...
 
Eine andere Idee, mit der ich mich anfreunden koennte...
Mittlere Maustaste druecken und dann scrollen.

Geht VIELLEICHT mit xinput?



Code:
dettus@oelmuehle> xinput list-props 7
Device '/dev/wsmouse0':
    Device Enabled (184):    1
    Coordinate Transformation Matrix (185):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (300):    0
    Device Accel Constant Deceleration (301):    1.000000
    Device Accel Adaptive Deceleration (302):    1.000000
    Device Accel Velocity Scaling (303):    10.000000
    WS Pointer Middle Button Emulation (304):    2
    WS Pointer Middle Button Timeout (305):    50
    WS Pointer Wheel Emulation (306):    0
    WS Pointer Wheel Emulation Axes (307):    0, 0, 4, 5
    WS Pointer Wheel Emulation Inertia (308):    10
    WS Pointer Wheel Emulation Timeout (309):    200
    WS Pointer Wheel Emulation Button (310):    4
; xinput list-props 8
Device '/dev/wsmouse1':
    Device Enabled (184):    1
    Coordinate Transformation Matrix (185):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (300):    0
    Device Accel Constant Deceleration (301):    1.000000
    Device Accel Adaptive Deceleration (302):    1.000000
    Device Accel Velocity Scaling (303):    10.000000
    WS Pointer Axis Calibration (313):    0, 3528, 0, 1793
    WS Pointer Axes Swap (314):    0
    WS Pointer Middle Button Emulation (304):    2
    WS Pointer Middle Button Timeout (305):    50
    WS Pointer Wheel Emulation (306):    0
    WS Pointer Wheel Emulation Axes (307):    0, 0, 4, 5
    WS Pointer Wheel Emulation Inertia (308):    10
    WS Pointer Wheel Emulation Timeout (309):    200
    WS Pointer Wheel Emulation Button (310):    4
 
Okay!
Ich glaube, ich habe einen Workaround:

Ich muss folgendes eintippen, dann klappt es.



Code:
; xinput # list devices. looks like i have 3 and /dev/wsmouse has id=9
...
; xinput list-props 9    # list the ids. See the numbers?

Device '/dev/wsmouse':
    Device Enabled (184):    1
    Coordinate Transformation Matrix (185):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (300):    0
    Device Accel Constant Deceleration (301):    1.000000
    Device Accel Adaptive Deceleration (302):    1.000000
    Device Accel Velocity Scaling (303):    10.000000
    WS Pointer Middle Button Emulation (304):    2
    WS Pointer Middle Button Timeout (305):    50
    WS Pointer Wheel Emulation (306):    0
    WS Pointer Wheel Emulation Axes (307):    0, 0, 4, 5
    WS Pointer Wheel Emulation Inertia (308):    10
    WS Pointer Wheel Emulation Timeout (309):    200
    WS Pointer Wheel Emulation Button (310):    4

; xinput set-int-prop 9 306 8 1        # enable the WS Pointer Wheel Emulation by setting it to 8-bit "1" 
; xinput set-int-prop 9 304 8 4        # Re-map the WS Pointer Middle Button Emulation to Button 4 (which does not exist)
; xinput set-int-prop 9 310 8 2        # Re-map the WS Pointer Wheel Emulation to Button 2 (instead of 4, which does not exist)

Die Syntax von xinput ist mir noch ein Raetsel, ich werde das morgen mal als Autostart bei Gnome einbauen.
 
ich habe mir die Befehle in eine ~/.xprofile geschrieben
Code:
#!/bin/sh

xinput # list devices. looks like i have 3 and /dev/wsmouse has id=9

xinput list-props 9    # list the ids. See the numbers?


xinput set-int-prop 9 306 8 1        # enable the WS Pointer Wheel Emulation by setting it to 8-bit "1"
xinput set-int-prop 9 304 8 4        # Re-map the WS Pointer Middle Button Emulation to Button 4 (which does not exist)
xinput set-int-prop 9 310 8 2        # Re-map the WS Pointer Wheel Emulation to Button 2 (instead of 4, which does not exist)
und, weil ich GNOME fahre, die /etc/gdm/Xsession so veraendert:

Code:
#!/bin/sh

[ -f ${HOME}/.profile ] && . ${HOME}/.profile
[ -f ${HOME}/.xprofile ] && . ${HOME}/.xprofile

userresources=${HOME}/.Xresources
usermodmap=${HOME}/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

if [ -f ${sysresources} ]; then
    xrdb -merge ${sysresources}
fi

if [ -f ${sysmodmap} ]; then
    xmodmap ${sysmodmap}
fi

if [ -f "${userresources}" ]; then
    xrdb -merge "${userresources}"
fi

if [ -f "${usermodmap}" ]; then
    xmodmap "${usermodmap}"
fi

eval "${@}"
exit
 
Ich habe in meinen config-notes verschiedene Methoden notiert:

1. nur mit wscons:
/etc/wsconsctl.conf
Code:
mouse.reverse_scrolling=1
mouse.tp.tapping=1,3,2

mouse.tp.scaling=0.6
mouse.tp.edges=0,0,0,0
mouse0.param=34:0,35:0,36:0
mouse3.reverse_scrolling=1

2. oder mit synaptics:
/etc/X11/xorg.conf.d/mouse.conf
Code:
Section "InputClass"
    Identifier "Your Mouse"
    MatchDriver "ws"
    Driver "ws"
    Option "Buttons" "12"
    Option "Device" "/dev/wsmouse"
    Option "Floating" "false"
    Option "WAxisMapping" "10 11"
    Option "ZAxisMapping" "8 9"
EndSection
/etc/X11/xorg.conf.d/synaptics.conf
Code:
Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
    Option "Device" "/dev/wsmouse0"
    Option "ClickPad" "1"
    #Option "TapButton1" "1"
    #Option "TapButton2" "3"
    #Option "TapButton3" "2"
    Option "PalmDetect" "1"
    Option "TapAndDragGesture" "0"
    Option "VertTwoFingerScroll" "1"
    Option "HorizTwoFingerScroll" "0"
    Option "VertScrollDelta" "-26"
    Option "HorizScrollDelta" "-26"
    Option "MinSpeed" "1"
    Option "MaxSpeed" "1"
    Option "AccelFactor" "0.0573888"
EndSection

Beide Methoden haben damals auf einem Thinkpad funktioniert. Die Methode mit xinput, die Du oben beschriebst, hat bei mir mangels libinput nicht so funktioniert, wie ich es gerne gehabt haette. Evtl. hat sich das aber inzwischen geaendert. Ich werde dass das naechste Mal wieder testen.
 
Zurück
Oben