8

So, I've been dealing with Ubuntu and other Debian-based distros for a while and kinda like Crunchbang. But I've been also noticing that Ubuntu (as well as LMDE) comes with that fancy/nice/eyecandy feature called "smooth scrolling" (not just in Firefox/Chrome, I'm referring to the system-wide scrolling experience).

I want to have it in Crunchbang as well. I've been searching the web for documentation about the feature for weeks, but I can't find anything! I could just understand (and I'm not even sure) that smooth scrolling has to do with GTK+ (and Synaptics driver perhaps?), and nothing else.

To make it clear, I'm referring to the same difference between scrolling in WinXP (commonly 3 or 5 lines at time) with a mouse wheel and scrolling in OSX with their clickpads (where it is more like swiping on a touchscreen).

If it is of any importance, I'm running Crunchbang in a Samsung Series 9, with an Elantech clickpad.

Could you please help me find the way to learn more? Or do you know any guide to get it working in Crunchbang?

2

This was answered in-depth on the Crunchbang forums, they describe this scrolling as "smooth inertial scrolling."

One has to configure the touchpad driver correctly, and the example given, which sounds like it could be universal enough to configure yours as well, uses the package synclient.

They've used these settings in synclient, I've linked the man page, above:

Parameter settings:
LeftEdge                = 1752
RightEdge               = 5192
TopEdge                 = 1620
BottomEdge              = 4236
FingerLow               = 25
FingerHigh              = 30
FingerPress             = 256
MaxTapTime              = 92
MaxTapMove              = 76
MaxDoubleTapTime        = 180
SingleTapTimeout        = 180
ClickTime               = 100
FastTaps                = 0
EmulateMidButtonTime    = 75
EmulateTwoFingerMinZ    = 282
EmulateTwoFingerMinW    = 7
VertScrollDelta         = 100
HorizScrollDelta        = 100
VertEdgeScroll          = 1
HorizEdgeScroll         = 0
CornerCoasting          = 0
VertTwoFingerScroll     = 1
HorizTwoFingerScroll    = 0
MinSpeed                = 0
MaxSpeed                = 1.22754
AccelFactor             = 0.0615836
TrackstickSpeed         = 0
EdgeMotionMinZ          = 30
EdgeMotionMaxZ          = 160
EdgeMotionMinSpeed      = 1
EdgeMotionMaxSpeed      = 401
EdgeMotionUseAlways     = 0
UpDownScrolling         = 1
LeftRightScrolling      = 1
UpDownScrollRepeat      = 1
LeftRightScrollRepeat   = 1
ScrollButtonRepeat      = 100
TouchpadOff             = 0
LockedDrags             = 0
LockedDragTimeout       = 5000
RTCornerButton          = 0
RBCornerButton          = 0
LTCornerButton          = 0
LBCornerButton          = 0
TapButton1              = 1
TapButton2              = 0
TapButton3              = 0
ClickFinger1            = 1
ClickFinger2            = 1
ClickFinger3            = 1
CircularScrolling       = 0
CircScrollDelta         = 0.1
CircScrollTrigger       = 0
CircularPad             = 0
PalmDetect              = 0
PalmMinWidth            = 10
PalmMinZ                = 200
CoastingSpeed           = 30
CoastingFriction        = 30
PressureMotionMinZ      = 30
PressureMotionMaxZ      = 160
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
GrabEventDevice         = 1
TapAndDragGesture       = 1
AreaLeftEdge            = 0
AreaRightEdge           = 0
AreaTopEdge             = 0
AreaBottomEdge          = 0
HorizHysteresis         = 25
VertHysteresis          = 25
ClickPad                = 0

...and added this to autostart:

    ## Detect and configure touchpad. See 'man synclient' for more info.
if egrep -iq 'touchpad' /proc/bus/input/devices; then
synclient VertEdgeScroll=1 &
synclient TapButton1=1 &
synclient CoastingSpeed=35 &
synclient CoastingFriction=30 &
0

Found this link. Looks like you can run xev and it will puke a bunch of output about your scrolling.

Using xev you can at least see if it's smooth scrolling or button event scrolling. On my G500 with the clicks turned off it still is not smooth. xev shows a "button" event every time it scrolls.

ButtonPress event, serial 32, synthetic NO, window 0x5000001,
    root 0xbd, subw 0x5000002, time 183061084, (53,58), root:(924,530),
    state 0x0, button 5, same_screen YES

ButtonPress event, serial 32, synthetic NO, window 0x5000001,
    root 0xbd, subw 0x5000002, time 183061644, (53,58), root:(924,530),
    state 0x0, button 4, same_screen YES

https://askubuntu.com/questions/139015/enable-smooth-scrolling-for-mouse-wheel

Also found this.

http://andym3.wordpress.com/2012/05/27/fixing-natural-scrolling-in-ubuntu-12-04/

  • 2
    you will never detect "smooth scrolling" events with xev. xev is outdated in case of XInput 2 events. what x is doing if it detects "smooth" XI2 scroll events is translating them to the "old" 4/5 Button presses to be consistent with "old" software. cuz of that the "old" xev will only detect 4/5 button presses even in cases of synaptic touchpad "smooth" XI2 events. – dustin.b Dec 28 '14 at 11:43
  • @dustin.b What utility could I use to capture "raw" smooth "events" (if "events" is even the correct terminology anymore) from my touchpad or other device to see that the device could even support the smooth scrolling? – user29020 Dec 31 '14 at 20:15
  • 4
    @user29020 i would recommend xinput. Just type >$ xinput to gather a list of input devices. Choose the device based on the id value shown in this list. After that type >$ xinput --test-xi2 <id> where <id> is the number of the device. Without moving the mouse/pad you can already see the valuators. you can see valuator 3"Rel Vert Scroll" if you now move the device you see motion events. One finger movment results in valuator flags 0,1(x,y). Two finger scroll in valuator flag 3. – dustin.b Jan 1 '15 at 20:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.