# Configure touchpads to use Chromium Multitouch (cmt) X input driver
Section "InputClass"
    Identifier      "touchpad samus"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchProduct    "Atmel"
    Option          "Touchpad Stack Version" "2"
    Option          "Integrated Touchpad" "1"
    Option          "Pressure Calibration Offset" "-8.345256186"
    Option          "Pressure Calibration Slope" "1.006531862"
    Option          "Tap Minimum Pressure" "-15.0"
    Option          "Vertical Resolution" "8"
    Option          "Horizontal Resolution" "9"

    Option          "Palm Pressure" "120"
    Option          "Tap Exclusion Border Width" "6"
    Option          "Palm Edge Zone Width" "9"

    Option          "Pressure Minimum Threshold" "-7.84"

    # Enable Stationary Wiggle Filter
    Option          "Stationary Wiggle Filter Enabled" "1"
    Option          "Finger Moving Energy" "0.04"
    Option          "Finger Moving Hysteresis" "0.02"

    Option          "Box Width" "0.5"
    Option          "Box Height" "0.5"

    # Fix to prevent flings from stationary lifting fingers
    Option          "Max Stationary Move Speed" "47"
    Option          "Max Stationary Move Speed Hysteresis" "1"
    Option          "Max Stationary Move Suppress Distance" "0.2"

    Option          "Max Finger Stationary Speed" "50"

    Option          "Tap Move Distance" "3.0"
    Option          "Force Touch Count To Match Finger Count" "1"

    # Avoid palm motion
    Option          "Palm Pointing Min Move Distance" "12.0"

    # New filtering logic shouldn't apply to this platform
    Option          "Filter Low Pressure" "1"

    Option          "Pinch Enable" "1"
EndSection
