Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help with scroll coasting not working #94

Open
djhoese opened this issue Sep 6, 2019 · 4 comments
Open

Help with scroll coasting not working #94

djhoese opened this issue Sep 6, 2019 · 4 comments

Comments

@djhoese
Copy link

djhoese commented Sep 6, 2019

I just built and install mtrack from this master branch. I was able to get almost every basic use I wanted to work except scroll coasting. Scrolling was originally very slow but reduced the scroll distance and that seemed to help. I've tried a few different things, but I can't seem to get the scroll to continue no matter how fast I do the scroll or the distance that I do it. I tried looking at the source code, but got lost since it looks like some of the options are hardcoded and the configured ones seem (?) to be ok.

Anyone have ideas?

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SYNA1202:00 06CB:CD65 Touchpad            id=12   [slave  pointer  (2)]
⎜   ↳ PS/2 Synaptics TouchPad                   id=15   [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)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ BisonCam,NB Pro: BisonCam,NB Pr           id=11   [slave  keyboard (3)]
    ↳ Intel HID events                          id=13   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
$ xinput list-props 12
Device 'SYNA1202:00 06CB:CD65 Touchpad':
        Device Enabled (184):   1
        Coordinate Transformation Matrix (186): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (318):     0
        Device Accel Constant Deceleration (319):       1.000000
        Device Accel Adaptive Deceleration (320):       1.000000
        Device Accel Velocity Scaling (321):    10.000000
        Trackpad Disable Input (322):   0
        Trackpad Sensitivity (323):     1.000000
        Trackpad Touch Pressure (324):  5, 1
        Trackpad Button Settings (325): 1, 0
        Trackpad Button Emulation Settings (326):       0, 1, 100, 0
        Trackpad Button Emulation Values (327): 0, 1, 1, 1, 1, 2, 0
        Trackpad Tap Settings (328):    25, 120, 400
        Trackpad Tap Button Emulation (329):    1, 3, 2, 0
        Trackpad Thumb Detection (330): 0, 0
        Trackpad Thumb Size (331):      25, 70
        Trackpad Palm Detection (332):  1, 0
        Trackpad Palm Size (333):       40
        Trackpad Gesture Settings (334):        10, 100
        Trackpad Smooth Scroll (335):   1
        Trackpad Scroll Settings (336): 50, 20, 0
        Trackpad Scroll Buttons (337):  5, 4, 7, 6
        Trackpad Swipe Settings (338):  1, 0, 1000
        Trackpad Swipe Buttons (339):   1, 1, 1, 1
        Trackpad Swipe4 Settings (340): 700, 300, 0
        Trackpad Swipe4 Buttons (341):  0, 0, 0, 0
        Trackpad Scroll Coasting (342): 0.100000, 500.000000
        Trackpad Edge Scroll Settings (343):    105, 20, 0, 4, 5, 6, 7
        Trackpad Edge Sizes (344):      0, 10, 0, 0
        Trackpad Scale Distance (345):  150
        Trackpad Scale Buttons (346):   12, 13
        Trackpad Rotate Distance (347): 150
        Trackpad Rotate Buttons (348):  14, 15
        Trackpad Hold1Move1 Stationary Settings (349):  20, 1
        Trackpad Hold1Move1 Settings (350):     1, 0, 1000
        Trackpad Hold1Move1 Buttons (351):      1, 1, 1, 1
        Trackpad Drag Settings (352):   1, 350, 40, 200, 500
        Trackpad Axis Inversion (353):  0, 0

Edit: This is PopOS (Ubuntu) 19.04 with KDE.

@ghost
Copy link

ghost commented Nov 10, 2019

Did you set the ScrollCoastDuration to a high enough value? Try setting your ScrollCoastEnableSpeed to something like .3

        Option          "ScrollCoastDuration" "1000"
        Option          "ScrollCoastEnableSpeed" ".3"

@djhoese
Copy link
Author

djhoese commented Nov 10, 2019

I had it set to 0.3 for EnableSpeed and the duration to 500. I bumped it to 1000 and yeah it feels a little better.

Edit: Can't get it to work with Konsole, will have to look that up.

@ghost
Copy link

ghost commented Nov 10, 2019

You can try bumping ScrollCoastDuration, I believe values over 1s will give you that coasting feeling. What we need now is a way to more gradually ramp up and down the coasting speed, i.e. overcome initial friction (a weight value?), inertia coasts you, then friction slows you back down. This should also make it so slow scrolling moves you less, which is intuitive because you are overcoming the weight of the object. Imagine you are pushing a loaded cart on rails, give it a light push it moves only a little, maybe even not at all, but push it harder and keep pushing it and it will keep going until it slows down under it's own weight or it hits the end of the track or, in our case, the content.

For now you can try my Macbook Pro 2013 config. #95

@ghost
Copy link

ghost commented Nov 11, 2019

I was completely wrong I think. Turns out for me I had libinput also running. I moved the mtrack.conf file to a higher priority than libinput and now things are much different (better). In my case libinput was at 40-libinput.conf, so I moved mtrack to 30.

Try something like this on your system:
mv /usr/share/X11/xorg.conf.d/50-mtrack.conf /usr/share/X11/xorg.conf.d/30-mtrack.conf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant