校准触摸屏/触摸板 Ubuntu 18.04

校准触摸屏/触摸板 Ubuntu 18.04

我被要求设置一个触摸屏,以便在 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"

相关内容