我被要求设置一个触摸屏,以便在 18.04 的桌面安装上运行。目前我选择了最小安装模式。我尽我所能校准触摸屏/触摸板以使其正常工作,但还是不行。
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=12 [slave pointer (2)]
⎜ ↳ MicroTouch Systems, Inc. MicroTouch USB Touchscreen - EX II id=10 [slave pointer (2)]
列表中的最后一项是这里的主题。
我已经安装并使用了xinput_calibrator
告诉我包含以下内容的内容:/usr/share/X11/xorg.conf.d/99-calibration.conf
Section "InputClass"
Identifier "calibration"
MatchProduct "MicroTouch Systems, Inc. MicroTouch USB Touchscreen - EX II"
Option "MinX" "11516"
Option "MaxX" "54762"
Option "MinY" "53541"
Option "MaxY" "11258"
Option "SwapXY" "0" # unless it was already set to 1
Option "InvertX" "0" # unless it was already set
Option "InvertY" "1" # unless it was already set
EndSection
我已经完成重新启动,但仍然存在一些整体偏移和 y 轴镜像。
大部分步骤来自这里但那是针对 ubuntu 12.04 的,所以我猜已经过时了。在那里,作者建议将配置放入:/usr/share/X11/xorg.conf.d/10-evdev.conf
但该文件不存在,并且所有 »evdev« 内容似乎根本不存在于系统上。
我在这里可以做什么?
提前致谢……
更新
根据进一步的研究:
$ xinput list-props
Device 'MicroTouch Systems, Inc. MicroTouch USB Touchscreen - EX II':
Device Enabled (139): 1
Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (279): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (280): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (262): 1, 0
libinput Send Events Mode Enabled (263): 0, 0
libinput Send Events Mode Enabled Default (264): 0, 0
Device Node (265): "/dev/input/event16"
Device Product ID (266): 1430, 1
其中 EntryCoordinate Transformation Matrix
是 的结果xinput set-prop
。由于可触摸区域应该与显示区域相同,因此变换矩阵应该是:
1 0 0
0 1 0
0 0 1
但是 y 轴是镜像的,所以我尝试过:
1 0 0
0 -1 0
0 0 1
但那没有用……
我如何才能找到可触摸区域?
答案1
您需要为 y 轴定义一个偏移量。
因此你的矩阵应该是这样的:
1 0 0
0 -1 1
0 0 1
因此你可以将其放入你的 xorg 配置中:
Section "InputClass"
Identifier "calibration"
MatchProduct "MicroTouch Systems, Inc. MicroTouch USB Touchscreen - EX II"
Option "TransformationMatrix" "1 0 0 0 -1 1 0 0 1"
EndSection
对于实际校准,我使用 libinputs 选项 CalibrationMatrix。这些点 x0 和 x3 是输出的点击 1 和 3 xinput_calibrator -v
。
a = (width * 6 / 8) / (x3 - x0)
c = ((width / 8) - (a * x0)) / width
e = (height * 6 / 8) / (y3 - y0)
f = ((height / 8) - (e * y0)) / height
Option "CalibrationMatrix" "a 0 c 0 e f 0 0 1"