Notes on the Acer c720 trackpad support

Matthew Dillon dillon at apollo.backplane.com
Thu Jan 9 18:15:42 PST 2014


    Trackpad support has been improved in master for the Acer c720
    chromebook when running DragonFly.  Trackpads on other intel-based
    chromebooks when running DragonFly might work too but would possibly
    require more messing around with drivers.  Other laptops... depends
    on their chipsets but the driver I wrote only operates with the
    Cypress APA trackpad via the I2C bus, and some work would probably
    be needed even on other laptops using the same trackpad chip.

    I've been working on my Acer c720 and have made some improvements
    to the trackpad to make button emulation work better.

    In xorg.conf, the mouse protocol can now be set to "imps/2" instead
    of "ps/2" in order to get z-axis (mouse-wheel emulation) support.
    The three-finger sequence for the left mouse button emulation has
    been expanded to allow left, middle, AND right button emulation
    depending on which of the three fingers you set down last / and-or
    tap.

    There is one quirk.  If you have three or more fingers set down
    exactly horizontally the trackpad gets confused and will generate
    bogus finger-up/finger-down events.  It is best, when using three-finger
    sequences, to have your fingers placed on a slight diagonal.  There
    is nothing I can do about the issue, the trackpad itself is reporting
    bogus data.

    Here is a full list of features I have implemented in the driver:

				FEATURES

   Jitter supression	- Implements 2-pixel hysteresis with memory.
  
   False-finger supression- Two-fingers-down does not emulate anything,
  			    on purpose.
  
   False-emulated button handling-
  			  Buttons are emulated when three fingers are
  			  placed on the pad.  If you place all three
  			  fingers down simultaniously, this condition
  			  is detected and will not emulate any button.
  
   Slider jesture	- Finger the right hand side and slide up or down.

  			  (Three finger jestures)
   left button jesture	- Two fingers down on the left, tap/hold right
   middle button jesture- Two fingers down left & right, tap/hold middle
   right button jesture - Two fingers down on the right, tap/hold left

			  (you can also mouse the pointer with one, two,
			  or three fingers.  Placing three fingers down
			  simultaniously will not emulate any button press.
			  You can then lift and tap one of the fingers
			  for the button press.
  
   track-pad button     - Tap/push physical button, left, middle, or right
  			  side of the trackpad will issue a LEFT, MIDDLE, or
  			  RIGHT button event.
  
   track-pad button     - Any tap/slide of more than 32 pixels and pushing
  			  harder to articulate the trackpad physical button
  			  always issues a LEFT button event.
  
   first-finger tracking- The X/Y coordinates always track the first finger
  			  down.  If you have multiple fingers down and lift
  			  up the designated first finger, a new designated
  			  first finger will be selected without causing the
  			  mouse to jump (delta's are reset).

						-Matt



More information about the Users mailing list