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

MatchIsTouchpad "on" | |

MatchDevicePath "/dev/input/event*" | |

Driver "cmt" | |

Option "AccelerationProfile" "-1" | |

Option "Scroll Buttons" "0" | |

Option "Scroll Axes" "1" | |

# CMT devices potentially process keyboard events | |

Option "XkbModel" "pc" | |

Option "XkbLayout" "us" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Synaptics Touchpad" | |

MatchUSBID "06cb:*" | |

MatchIsTouchpad "on" | |

MatchDevicePath "/dev/input/event*" | |

# default calibration values for Synaptics firmware | |

Option "Pressure Calibration Offset" "-51.1766" | |

Option "Pressure Calibration Slope" "1.7716" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Elan Touchpad" | |

MatchUSBID "04f3:*" | |

MatchIsTouchpad "on" | |

MatchDevicePath "/dev/input/event*" | |

# default calibration values for Elan firmware | |

Option "Pressure Calibration Offset" "0.0" | |

Option "Pressure Calibration Slope" "3.1416" | |

# Devices with the default pressure calibration have a lower tap threshold | |

Option "Tap Minimum Pressure" "10.0" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Apple Magic Trackpad" | |

MatchUSBID "05ac:030e" | |

MatchDevicePath "/dev/input/event*" | |

Option "Touchpad Stack Version" "1" | |

# We are using raw touch major value as pressure value, so set the Palm | |

# pressure threshold high. | |

Option "Palm Pressure" "1000" | |

Option "Compute Surface Area from Pressure" "0" | |

Option "IIR b0" "1" | |

Option "IIR b1" "0" | |

Option "IIR b2" "0" | |

Option "IIR b3" "0" | |

Option "IIR a1" "0" | |

Option "IIR a2" "0" | |

# TODO(clchiou): Calibrate bias on X-axis | |

Option "Touchpad Device Output Bias on X-Axis" "-283.3226025266607" | |

Option "Touchpad Device Output Bias on Y-Axis" "-283.3226025266607" | |

Option "Max Allowed Pressure Change Per Sec" "100000.0" | |

Option "Max Hysteresis Pressure Per Sec" "100000.0" | |

# Disable drumroll suppression | |

Option "Drumroll Suppression Enable" "0" | |

Option "Two Finger Vertical Close Distance Thresh" "35.0" | |

Option "Fling Buffer Suppress Zero Length Scrolls" "0" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Apple Magic Trackpad 2" | |

MatchUSBID "05ac:0265|004c:0265" | |

MatchDevicePath "/dev/input/event*" | |

Option "Pressure Calibration Offset" "30" | |

Option "Palm Pressure" "250.0" | |

Option "Palm Width" "20.0" | |

Option "Multiple Palm Width" "20.0" | |

# Enable Stationary Wiggle Filter | |

Option "Stationary Wiggle Filter Enabled" "1" | |

Option "Finger Moving Energy" "0.0008" | |

Option "Finger Moving Hysteresis" "0.0004" | |

# Avoid accidental scroll/move on finger lift | |

Option "Max Stationary Move Speed" "47" | |

Option "Max Stationary Move Speed Hysteresis" "1" | |

Option "Max Stationary Move Suppress Distance" "0.2" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Apple Magic Mouse" | |

MatchUSBID "05ac:030d" | |

MatchDevicePath "/dev/input/event*" | |

Driver "cmt" | |

Option "AccelerationProfile" "-1" | |

Option "Scroll X Out Scale" "3" | |

Option "Scroll Y Out Scale" "3" | |

Option "Compute Surface Area from Pressure" "0" | |

Option "Max Allowed Pressure Change Per Sec" "170.0" | |

Option "Max Hysteresis Pressure Per Sec" "170.0" | |

Option "Max Finger Stationary Speed" "94.32" | |

Option "Mouse Accel Curves" "1" | |

Option "Mouse Scroll Curves" "0" | |

Option "Box Width" "8.0" | |

Option "Box Height" "1.0" | |

# Resolution overrides: | |

Option "Vertical Resolution" "40" | |

Option "Horizontal Resolution" "45" | |

# Assume a frame interval to handle jitter on the bus | |

Option "Accel Min dt" "0.003" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Logitech Wireless Touchpad" | |

MatchUSBID "046d:4011" | |

MatchIsTouchpad "on" | |

MatchDevicePath "/dev/input/event*" | |

Option "Touchpad Stack Version" "1" | |

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 "Pressure Calibration Offset" "-313.240741792594" | |

Option "Pressure Calibration Slope" "4.39678062436752" | |

Option "Max Allowed Pressure Change Per Sec" "100000.0" | |

Option "Max Hysteresis Pressure Per Sec" "100000.0" | |

Option "Palm Pressure" "100000.0" | |

Option "Two Finger Vertical Close Distance Thresh" "35.0" | |

Option "Fling Buffer Suppress Zero Length Scrolls" "0" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Logitech T650" | |

MatchUSBID "046d:4101" | |

MatchIsTouchpad "on" | |

MatchDevicePath "/dev/input/event*" | |

Option "Touchpad Stack Version" "1" | |

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 "Pressure Calibration Offset" "-0.439288351750068" | |

Option "Pressure Calibration Slope" "3.05998553523335" | |

Option "Max Allowed Pressure Change Per Sec" "100000.0" | |

Option "Max Hysteresis Pressure Per Sec" "100000.0" | |

Option "Two Finger Vertical Close Distance Thresh" "35.0" | |

Option "Fling Buffer Suppress Zero Length Scrolls" "0" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Logitech T651" | |

MatchUSBID "046d:b00c" | |

MatchIsTouchpad "on" | |

MatchDevicePath "/dev/input/event*" | |

Option "Touchpad Stack Version" "1" | |

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 "Pressure Calibration Offset" "-4.46520447177073" | |

Option "Pressure Calibration Slope" "3.21071719332644" | |

Option "Max Allowed Pressure Change Per Sec" "100000.0" | |

Option "Max Hysteresis Pressure Per Sec" "100000.0" | |

Option "Two Finger Vertical Close Distance Thresh" "35.0" | |

Option "Fling Buffer Suppress Zero Length Scrolls" "0" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Logitech T620" | |

MatchUSBID "046d:4027" | |

MatchDevicePath "/dev/input/event*" | |

Driver "cmt" | |

Option "Max Allowed Pressure Change Per Sec" "100000.0" | |

Option "Max Hysteresis Pressure Per Sec" "100000.0" | |

Option "Box Width" "6" | |

Option "Box Height" "1" | |

Option "Drumroll Suppression Enable" "0" | |

Option "Input Queue Max Delay" "0.0" | |

Option "Mouse Accel Curves" "1" | |

Option "Mouse Scroll Curves" "0" | |

Option "AccelerationProfile" "-1" | |

# Assume a frame interval to handle jitter on the bus | |

Option "Accel Min dt" "0.003" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Logitech T400" | |

MatchUSBID "046d:4026" | |

MatchDevicePath "/dev/input/event*" | |

Driver "cmt" | |

Option "Max Allowed Pressure Change Per Sec" "100000.0" | |

Option "Max Hysteresis Pressure Per Sec" "100000.0" | |

Option "Box Width" "6" | |

Option "Box Height" "1" | |

Option "Drumroll Suppression Enable" "0" | |

Option "Input Queue Max Delay" "0.0" | |

Option "Mouse Accel Curves" "1" | |

Option "Mouse Scroll Curves" "0" | |

Option "AccelerationProfile" "-1" | |

# Assume a frame interval to handle jitter on the bus | |

Option "Accel Min dt" "0.003" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Logitech Bluetooth Touchmouse" | |

MatchUSBID "046d:b00d" | |

MatchDevicePath "/dev/input/event*" | |

Driver "cmt" | |

Option "Max Allowed Pressure Change Per Sec" "100000.0" | |

Option "Max Hysteresis Pressure Per Sec" "100000.0" | |

Option "Box Width" "6" | |

Option "Box Height" "1" | |

Option "Drumroll Suppression Enable" "0" | |

Option "Input Queue Max Delay" "0.0" | |

Option "Mouse Accel Curves" "1" | |

Option "Mouse Scroll Curves" "0" | |

Option "AccelerationProfile" "-1" | |

# Assume a frame interval to handle jitter on the bus | |

Option "Accel Min dt" "0.003" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Logitech TK820" | |

MatchUSBID "046d:4102" | |

MatchDevicePath "/dev/input/event*" | |

Driver "cmt" | |

Option "Touchpad Stack Version" "2" | |

# Pressure jumps around a lot on this touchpad, so allow that: | |

Option "Max Allowed Pressure Change Per Sec" "100000.0" | |

Option "Max Hysteresis Pressure Per Sec" "100000.0" | |

Option "Pressure Calibration Offset" "-18.8078435" | |

Option "Pressure Calibration Slope" "2.466208137" | |

EndSection | |

Section "InputClass" | |

Identifier "CMT for Stantum" | |

MatchDevicePath "/dev/input/event*" | |

MatchProduct "MTP_USB_Controller" | |

Driver "cmt" | |

Option "SendCoreEvents" "On" | |

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" "8" | |

Option "Vertical Resolution" "10" | |

Option "Two Finger Scroll Distance Thresh" "0.5" | |

Option "Pressure Calibration Offset" "1.0" | |

Option "Pressure Calibration Slope" "15.0" | |

Option "Max Allowed Pressure Change Per Sec" "100000.0" | |

Option "Max Hysteresis Pressure Per Sec" "100000.0" | |

Option "Fling Buffer Suppress Zero Length Scrolls" "0" | |

EndSection | |

Section "InputClass" | |

Identifier "Whiskers Touchpad" | |

MatchIsTouchpad "on" | |

MatchDevicePath "/dev/input/event*" | |

MatchUSBID "18D1:5030" | |

# Use new touchpad gesture stack | |

Option "Touchpad Stack Version" "2" | |

Option "Integrated Touchpad" "1" | |

Option "Pressure Calibration Offset" "0.0" | |

Option "Pressure Calibration Slope" "2" | |

# Enable Stationary Wiggle Filter | |

Option "Stationary Wiggle Filter Enabled" "1" | |

Option "Box Width" "0.5" | |

Option "Box Height" "0.5" | |

# Avoid accidental scroll/move on finger lift | |

Option "Max Stationary Move Speed" "47" | |

Option "Max Stationary Move Speed Hysteresis" "1" | |

Option "Max Stationary Move Suppress Distance" "0.2" | |

# Suppress clicks without fingers on the pad. | |

Option "Zero Finger Click Enable" "0" | |

Option "Filter Low Pressure" "1" | |

Option "Pinch Enable" "1" | |

Option "Palm Pressure" "220.0" | |

Option "Palm Filter Top Edge Enable" "1" | |

Option "Smooth Accel" "1" | |

Option "Tap Minimum Pressure" "20.0" | |

# Touch size increases with finger count, so ignore touch size for | |

# detecting palms if there are multiple touches. | |

Option "Multiple Palm Width" "200.0" | |

EndSection | |

Section "InputClass" | |

Identifier "Brydge Touchpad" | |

MatchIsTouchpad "on" | |

MatchDevicePath "/dev/input/event*" | |

MatchUSBID "03F6:A001" | |

Option "Fake Timestamp Delta" "0.010" | |

EndSection |