HOW TO: Two finger scrolling on Acer Aspire One

Discussion in 'Linux' started by mikespug, Feb 6, 2009.

  1. mikespug

    mikespug

    Joined:
    Aug 21, 2008
    Messages:
    46
    Likes Received:
    0
    A feature that many would consider the Aspire One to be "lacking" is the ability to scroll using two fingers, similar to what you are able to do on current Apple laptops. Generally linux will allow you to enable this feature on any synaptic trackpad that is able to report the number of fingers touching the trackpad. You can enable this on any standard finger reporting trackpad by editing your /etc/X11/xorg.conf file and inserting the following code under the "input device" section:

    Code:
    	Option		"VertTwoFingerScroll"	"1"
    The trouble with the Aspire One is that the trackpad does not report the number of fingers touching the pad. This is evident by enabling the SHMConfig option in your xorg file and running the command "synclient -m 10" in a terminal. By doing so you will recieve a screen similar to the following"

    Code:
     time   x    y    z  f   w   l   r  u  d  m        multi   gl  gm  gr  gdx  gdy
    0.000    1 5855    0  0   0   0  0  0  0  0  00000000    0    0    0     0      0
    The columns we are focusing on are f and w. Move your mouse around and take a look at what is reported. Column f shows the number of fingers touching the trackpad and will change dynamically on trackpads that are able to report this. On the Aspire One, however, the trackpad will only report the finger width which is displayed in column w. The ability to report the width of a finger on a trackpad is a feature typically used to allow a trackpad to detect when a users palm has touched the pad and, thus, will not move the mouse as it considers it to be an accidental "touch". It is this ability that we are going to utilize to enable two finger scrolling on the Aspire One.

    By default there is no way to utilize the finger width reporting feature in any manner, than I know of, other than to detect accidental trackpad touches. I, in searching for a way to utilize this feature, have recently made the aquaintence of a gentleman by the name of Luca who, only two days before I began working on a solution myself, had developed a patch for debian to enable this feature in the Synaptics driver. With his permission I edited the patch to allow it to compile under Ubuntu and am happy to say the feature works wonderfully.

    I've attached the newly compiled synaptic driver and am posting a copy of my xorg.conf file that will allow you to enable two finger scrolling on your own system. Let's get started:

    1. Download the attached file "xserver-xorg-input-synaptics_0.15.2-0ubuntu7_i386.zip"
    2. Open a terminal and navigate to the directory where you you saved the file (typically your desktop)
    3. Rename the file by issuing the command "mv xserver-xorg-input-synaptics_0.15.2-0ubuntu7_i386.zip xserver-xorg-input-synaptics_0.15.2-0ubuntu7_i386.deb" (I had to rename the file to a .zip to allow it to upload)
    4. Install the file by issuing the command "dpkg -i xserver-xorg-input-synaptics_0.15.2-0ubuntu7_i386.deb"
    5. After it finishes installing open your xorg.conf file for editing by issuing the command "sudo gedit /etc/X11/xorg.conf"
    6. Edit your xorg.conf file to reflect the following changes:

    Code:
    Section "InputDevice"
    	Identifier     "Synaptics Touchpad"
    	Driver      	"synaptics"
    	Option      	"SendCoreEvents"   	"true"
    	Option      	"Device"      		"/dev/psaux"
    	Option      	"Protocol"      	"auto-dev"
    	Option      	"HorizEdgeScroll"   	"0"
    	Option      	"SHMConfig"      	"true"
    	Option         "VertTwoFingerScroll"	"1"
    	Option	      "EmulateTwoFingerMinW"	"7"
    EndSection
    
    Section "ServerLayout"
    	Identifier    "Default Server Layout"
    	Screen		  "Default Screen"
    	InputDevice	"Keyboard"		"Core Keyboard"
    	InputDevice	"Synaptics Touchpad"	"Core Pointer"
    EndSection
    
    The line of code that you should take notice of is the one containing EmulateTwoFingerMinW. This sets the minimum finger width that should be considered to be "two fingers" touching the pad. At this point you should be able to reboot and enjoy two finger scrolling. I would recommend disabling the vertical scroll feature under the Preferences > Mouse > Touchpad menu and unchecking "Enable vertical scrolling".

    This driver was compiled under ubuntu 8.10. Keep in mind that these instruction are newly written. If edits are needed or users experience trouble please notify me and I will update to the instructions to accomodate. Also, this driver and instructions should work on any finger width reporting synaptics touchpad so if you know someone who has a trackpad that won't allow them to enable two finger scrolling because it won't report the number of fingers I would encourage you to try it out. Thanks.

    Here's my entire xorg.conf for comparison:
    Code:
    Section "ServerLayout"
    	Identifier 	"Default Server Layout"
    	Screen		"Default Screen"
    	InputDevice	"Keyboard"		"Core Keyboard"
    	InputDevice	"Synaptics Touchpad"	"Core Pointer"
    EndSection
    
    Section "Device"
    	Identifier	"Configured Video Device"
    EndSection
    
    Section "InputDevice"
    	Identifier   	"Synaptics Touchpad"
    	Driver      	"synaptics"
    	Option      	"SHMConfig"      	"true"      
    	Option      	"SendCoreEvents"   	"true"
    	Option      	"Device"      		"/dev/psaux"
    	Option      	"Protocol"      	"auto-dev"
    	Option      	"HorizEdgeScroll"   	"0"
    	Option		"VertTwoFingerScroll"	"1"
    	Option		"EmulateTwoFingerMinW"	"7"
    EndSection
    
    Section "InputDevice"
    	Identifier	"Keyboard"
    	Driver		"kbd"
    EndSection
    
    Section "Monitor"
    	Identifier	"Configured Monitor"
    EndSection
    
    Section "Screen"
    	Identifier	"Default Screen"
    	Monitor		"Configured Monitor"
    	Device		"Configured Video Device"
    EndSection
     
    mikespug, Feb 6, 2009
    #1
  2. mikespug

    Rince77

    Joined:
    Sep 22, 2008
    Messages:
    9
    Likes Received:
    0
    Doesn't work for me on my A110L. I'm getting a huge misconfiguration error and Ubuntu only starts in a very basic graphical environment.
     
    Rince77, Feb 6, 2009
    #2
  3. mikespug

    mikespug

    Joined:
    Aug 21, 2008
    Messages:
    46
    Likes Received:
    0
    What is the error exactly?
     
    mikespug, Feb 6, 2009
    #3
  4. mikespug

    Rince77

    Joined:
    Sep 22, 2008
    Messages:
    9
    Likes Received:
    0
    OK, i solved the issue. The point was that there has been no "Keyboard" section in my xorg.conf. I added a the section and now it works like a charm. Thanks!!!!:)
     
    Rince77, Feb 6, 2009
    #4
  5. mikespug

    mikespug

    Joined:
    Aug 21, 2008
    Messages:
    46
    Likes Received:
    0
    You're welcome. I'm glad you got it sorted out.
     
    mikespug, Feb 6, 2009
    #5
  6. mikespug

    jeffyeh

    Joined:
    Sep 11, 2008
    Messages:
    41
    Likes Received:
    0
    Thanks! I had the same issue as Rince77. After adding the keyboard section from your xorg.conf, it works like a charm!
     
    jeffyeh, Feb 8, 2009
    #6
  7. mikespug

    annafil

    Joined:
    Aug 12, 2008
    Messages:
    327
    Likes Received:
    0
    Location:
    Malaysia
    omg i have been trying to figure this out for ages! thank you thank you!

    Going to try it out right now
     
    annafil, Feb 8, 2009
    #7
  8. mikespug

    annafil

    Joined:
    Aug 12, 2008
    Messages:
    327
    Likes Received:
    0
    Location:
    Malaysia
    It works - woot!!

    I have a question though - you seem to understand how the driver works better than I do so maybe you can help me clear this up.

    Is the inability to do traditional two finger scrolling a hardware or software limitation do you think?

    I wonder how the windows driver goes about enabling this functionality - it's a lot more polished, much more like the original synaptics one.

    I was convinced that on these new touchpads (AAO, Asus n10j have similar issues) the limitation was purely software, and synaptics not reporting the number of fingers correctly was a problem with the way the driver read the touchpad capabilities when it was initialized - I read in one of the manuals that the capabilities are encoded within something like the firmware, and that they may vary for different families of touchpads (ie, older and newer).

    Unfortunately my research bottlenecked at that point - I couldn't figure out how to modify the driver so that the multi finger capability was forced and not checked for at startup - to see if my theory about the hardware was true...
     
    annafil, Feb 8, 2009
    #8
  9. mikespug

    mikespug

    Joined:
    Aug 21, 2008
    Messages:
    46
    Likes Received:
    0
    Both...in a way. Traditionally the two finger scrolling feature takes advantage of a trackpads ability to report the number of fingers on the trackpad. The ability to report the number of fingers on a trackpad can be used, as I'm certain you are aware, for more than just two finger scrolling. The trouble we have is that the trackpad on the AAO does not report the number of fingers...so in that respect it is a hardware issue. What we have done here is added a "feature", if you will, to take advantage of another hardware function to "mimic" two fingers being on the trackpad. In the same way that two fingers on a trackpad would register as "2"...two fingers on our trackpad changes the reported finger width to...lets say...8. The modified driver simply adds the ability to utilize the detected finger width for something other than detecting a palm on the trackpad. So in that sense...it was a software restriction.
     
    mikespug, Feb 8, 2009
    #9
  10. mikespug

    annafil

    Joined:
    Aug 12, 2008
    Messages:
    327
    Likes Received:
    0
    Location:
    Malaysia
    Right :) I see
     
    annafil, Feb 9, 2009
    #10
  11. mikespug

    jeffyeh

    Joined:
    Sep 11, 2008
    Messages:
    41
    Likes Received:
    0
    First of all, I have to thank you again for not just the awesome package/tweak, but explanation behind how it works. I'm definitely going to see if my T60 at home can detect multiple fingers or not.

    That said, there's a couple issues I'm having. I'll try to explain as clearly as I can.

    First, using the two finger scroll sometimes makes my scrolling go crazy. It scrolls all the way up to the top of the page and then back down to where I was several times, then stops. So far, I haven't really found out exactly what's causing this, but it hapens once in a while.

    Second, my touchpad appears to be sensing my fingers after I remove them, but only when I'm using two fingers. After tapping the touchpad with two fingers, I can hover over it and move up and down, and my screen will still scroll. I think this has something to do with my last problem, which is when removing my fingers, the scrolling doesn't always stop where I want.

    An interesting thing to note, I was just playing around with it, and thought it was caused by width. However, I can use my thumb sideways to scroll (and fulfil the width requirement), but using my thumb doesn't cause "ghost fingers." It only occurs when I'm using two fingers.

    Sorry if this seems very convoluted, let me know how I can clarify!

    Edit: I just tried with two thumbs. I can scroll, but again, "ghost fingers" don't occur. But it does happen with any other combination of fingers not including the thumbs.
     
    jeffyeh, Feb 11, 2009
    #11
  12. mikespug

    mikespug

    Joined:
    Aug 21, 2008
    Messages:
    46
    Likes Received:
    0
    First let me say that what you have written is not convoluted at all, but rather very clear and consise and I've experienced the same myself.

    I'll start with the issue of the "ghost fingers". This is remedied simply by adjusting the sensitivity of the trackpad itself. I found that the mouse controls ubuntu supplies don't quite do the job and had to install gsynaptics and adjust sensitivity via it's gui. I suppose you could manually adjust thing through your xorg.conf file but then you'd have to go through the trouble of restarting X after every adjustment. Play around with the settings and find the lowest setting that allows you to use the trackpad normally and see if that helps.

    Secondly, the issue of the erratic scrolling...I've been looking for a solution for this myself but this isn't an issue with this specific driver. I've enabled two finger scrolling on two other laptops that use the standard driver and noticed significantly more erratic behavior than anything i've ever experienced on the AAO. In fact...on my brothers laptop the behavior causes the twofingerscroll feature to be almost unusable (again...with the standard driver and a finger sensing trackpad)...so in short...if you find a solution to smooth things out let me know.
     
    mikespug, Feb 11, 2009
    #12
  13. mikespug

    jeffyeh

    Joined:
    Sep 11, 2008
    Messages:
    41
    Likes Received:
    0
    Thanks for the reply! gsynaptics is great! Getting the sensitivity adjusted fixed "ghost fingers," and adding acceleration makes for a much easier computing experience. I'll definitely chime in if I find a solution for the erratic scrolling.
     
    jeffyeh, Feb 11, 2009
    #13
  14. mikespug

    eruhuan

    Joined:
    Aug 9, 2008
    Messages:
    10
    Likes Received:
    0
    Hmm the links to the attached files does not work :(
     
    eruhuan, Feb 14, 2009
    #14
  15. mikespug

    mikespug

    Joined:
    Aug 21, 2008
    Messages:
    46
    Likes Received:
    0
    Fixed...If anyone knows of a good file hosting site to link to let me know. I'm assuming the uploads hosted on this server only last for so long...
     
    mikespug, Feb 14, 2009
    #15
  16. mikespug

    sleepydog

    Joined:
    Aug 25, 2008
    Messages:
    1
    Likes Received:
    0
    Would you mind posting the patch to the driver source? I'm running the stock Linpus lite, and just copying the files over won't work since an older version is used. If I can get it working I'll post an RPM.

    Cheers
     
    sleepydog, Feb 14, 2009
    #16
  17. mikespug

    maxn

    Joined:
    Sep 25, 2008
    Messages:
    8
    Likes Received:
    0
    Yea, thanks mikespug, it woks.
    For me it was nescessary install gsynaptics to reduce the hyper-sensitifiy with two fingers.
    Compared to macOS its not perfect, but better than scrolling with one finger.
    And it only works in ca. 80% centered area of of the touchpad, but nice hack, thanks!
     
    maxn, Feb 15, 2009
    #17
  18. mikespug

    mikespug

    Joined:
    Aug 21, 2008
    Messages:
    46
    Likes Received:
    0
    If someone knows, or could figure out the "x,y" settings/dimensions, so to speak, of the trackpad I'm certain that could be remedied. I've no idea at the present time how to determine this.
     
    mikespug, Feb 15, 2009
    #18
  19. mikespug

    Syco54645

    Joined:
    Aug 19, 2008
    Messages:
    48
    Likes Received:
    0
    Is there a chance of getting both right and middle click working? I think it is 2 is a right click and 3 is a middle click. I could be wrong though. even just the middle click would be nice.
     
    Syco54645, Feb 19, 2009
    #19
  20. mikespug

    annafil

    Joined:
    Aug 12, 2008
    Messages:
    327
    Likes Received:
    0
    Location:
    Malaysia
    well, the right click does work, although slightly inconsistently...

    In your xorg.conf, add this:

    Code:
            
            Option          "TapButton2"    "3"
            Option          "TapButton3"    "2"
    
    afaik, three finger detection doesn't work with this hack so you can only map either middle click or right click to "tapbutton2"
     
    annafil, Feb 20, 2009
    #20
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.