# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Configure touchpads to use Chromium Multitouch (cmt) X input driver
Section "InputClass"
    Identifier      "touchpad glimmer"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchProduct    "Elan"
    Option          "Touchpad Stack Version" "1"
    Option          "Integrated Touchpad" "1"
    # Pressure calibration results:
    # Probe Diameter   Measured   Expected   Calibrated
    # 0     3.90       42.01      11.95      79.58
    # 1     5.70       47.68      25.52      87.00
    # 2     7.70       54.84      46.57      96.36
    # 3     9.90       62.91      76.98      106.92
    # 4     11.70      71.59      107.51     118.27
    # 5     13.90      50.48      151.75     90.66
    # 6     17.80      50.22      248.85     90.32
    Option          "Pressure Calibration Offset" "24.6370546447"
    Option          "Pressure Calibration Slope" "1.30789868894"
    Option          "Tap Minimum Pressure" "25.0"
    Option          "Max Allowed Pressure Change Per Sec" "900"

    # 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          "Horizontal Resolution" "30"
    Option          "Vertical Resolution" "26"

    # This prevents issues with fling not happening while scrolling
    # with a resting finger
    Option          "Fling Buffer Suppress Zero Length Scrolls" "1"
    Option          "Two Finger Vertical Close Distance Thresh" "35.0"
    Option          "Fling Buffer Suppress Zero Length Scrolls" "0"

    Option          "Max Stationary Move Speed" "47"
    Option          "Max Stationary Move Speed Hysteresis" "1"
    Option          "Max Stationary Move Suppress Distance" "0.2"
EndSection
