# Configure touchpads to use Chromium Multitouch (cmt) X input driver
# This file holds the configuration for the Cypress pad.  Atmel Lucas's use the
# module from Pit exactly.  As such, the Xorg configs for those Lucas's is in
# the Pit config file which is also copied in by the ebuild
Section "InputClass"
    Identifier      "touchpad daisy cyapa"
    MatchIsTouchpad "on"
    MatchProduct    "Cypress APA Trackpad (cyapa)"
    MatchDevicePath "/dev/input/event*"
    Option          "Touchpad Stack Version" "1"
    Option          "Integrated Touchpad" "1"

    # Disable some causes of delay
    Option          "IIR b0" "1"
    Option          "IIR b1" "0"
    Option          "IIR b2" "0"
    Option          "IIR b3" "0"
    Option          "IIR a1" "0"
    Option          "IIR a2" "0"
    Option          "IIR Distance Threshold" "1000"
    Option          "Two Finger Vertical Close Distance Thresh" "45.0"

    # The flexible case can cause accidental physical clicks
    Option          "Zero Finger Click Enable" "0"

    Option          "Pressure Calibration Offset" "-1.73338827637399"
    Option          "Pressure Calibration Slope" "2.06326787767144"
    # Extra filters for Daisy
    Option          "Box Width" "1.0"
    Option          "Box Height" "1.0"
    Option          "Sensor Jump Filter Enable" "1"
    Option          "Sensor Jump Min Dist Non-Move" "0.3"
    Option          "Sensor Jump Min Dist Move" "0.9"
    Option          "Sensor Jump Similar Multiplier Move" "1.5"
    Option          "Split Merge Max Movement" "6.5"
    Option          "Merge Max Ratio" "0.5"
    Option          "Max Allowed Pressure Change Per Sec" "4000"
    Option          "Max Hysteresis Pressure Per Sec" "4000"
    Option          "Delay On Possible Liftoff" "1"
    Option          "Input Queue Max Delay" "0.019"
    Option          "Split Corrector Enabled" "1"

    Option          "Non-linearity correction data file" "/usr/share/gestures/daisy_linearity.dat"
    Option          "Enable non-linearity correction" "0"

    # Increase the pressure diff threshold for 2f scroll
    Option          "Two Finger Pressure Diff Thresh" "45"
    Option          "Fling Buffer Suppress Zero Length Scrolls" "0"
    Option          "Pinch Enable" "0"
EndSection
