有些设备的触摸屏不准,需要校正后才能正常使用。校正实际上就是配置设备在 Xorg 中的属性,具体属性名与驱动相关,后文描述。
注意: 本文所有的操作都是在 deepin 上完成,包名不同的请自行查找。
下面开始介绍校正方法:
准备
安装需要用到的工具:
xinput-calibrator : 触摸屏校正工具
xinput : 屏幕映射工具,多屏时使用
校正
执行 xinput_calibrator --list 查看触摸设备列表
校正设备 xinput_calibrator -v --device
device name or id 从上面的 list 中得到
此时会出现校正界面,按照提示点击,成功后程序会输出校正后的数据。
接着根据驱动的不同选择不同的设置方法,查看设备使用的驱动可通过 /var/log/Xorg.0.log 文件得到。
evdev
使用 evedev 驱动时可直接使用 xinput_calibrator 输出的数据,无需其它设置。
测试时使用 xinput 设置 Evdev Axis Calibration 属性。
libinput
使用 libinput 驱动时需要将 xinput_calibrator 输出的数据进行计算才可使用,计算方法参见: Libinput breaks xinput_calibrator
在此将计算方法写成了一个脚本,内容如下:
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import sys
def usage():
info = "Usage: " + sys.argv[0]
info += " "
info += " "
info += " "
print(info)
print("\tScreen width/hight by the command 'xrandr|grep screen' got")
print("\tClick x/y by the command 'xinput_calibrator -v' got")
sys.exit(0)
def convert(screen_x, screen_y, c0_x, c0_y, c3_x, c3_y):
a = (screen_x * 6 / 8) / (c3_x - c0_x)
c = ((screen_