# 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.

# Berknip/Dirinboz
Section "InputClass"
    Identifier      "touchpad zork elan"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchProduct    "Elan"
    MatchUSBID      "04f3:00E9|04f3:008E"
    Option          "Zero Finger Click Enable" "0"
EndSection

Section "InputClass"
    Identifier      "touchpad morphius"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    MatchProduct    "Elan Touchpad"
    MatchUSBID      "04f3:0076"

    Option          "Touchpad Stack Version" "2"

    Option          "Box Width" "1.0"
    Option          "Box Height" "1.0"
    Option          "Fat Finger Pressure Ratio" "1.0"
    Option          "Fat Finger Width Ratio" "1.0"
EndSection
