双屏幕收银机触摸屏校正 - xiaohao0576/odoo-doc GitHub Wiki
操作系统: Linux Mint 22.2
触摸屏分辨率: 1366x768
问题描述:
触摸控制卡固件在双屏模式下,没有将触摸原始坐标的上限限制在 DP-1 的物理边界内 (1366x768),而是错误地将触摸屏的原始坐标空间拉伸并报告给了整个 (双屏幕)2732x768 的虚拟桌面空间。
结果就是,只有第一块屏幕左下角 (0,0)坐标点击的准确的,越往右边越不准。
解决过程
pos@pos-laptop:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SIGMACHIP Usb Mouse id=9 [slave pointer (2)]
⎜ ↳ ILITEK ILITEK-TOUCH id=10 [slave pointer (2)]
⎜ ↳ ILITEK ILITEK-TOUCH Mouse id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
pos@pos-laptop:~$ xrandr
Screen 0: minimum 320 x 200, current 2732 x 768, maximum 16384 x 16384
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
1366x768 60.00*+
HDMI-2 disconnected (normal left inverted right x axis y axis)
HDMI-3 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 connected 1366x768+1366+0 (normal left inverted right x axis y axis) 344mm x 194mm
1366x768 60.00*+
触摸屏设备名称 (device): ILITEK ILITEK-TOUCH (id=10)
触摸屏输出名称 (output): DP-1
问题解决命令
xinput map-to-output 10 DP-1
做成开机启动脚本
vim ~/.config/touch_fix.sh
#!/bin/bash
# 延迟几秒,确保 Xorg 和显示器初始化完毕
sleep 8
# 强制将 ILITEK-TOUCH 输入映射到 DP-1 输出
# 注意:这里我们使用设备名,不用ID,因为如果重启后ID变化,可能需要改为名称
xinput map-to-output "ILITEK ILITEK-TOUCH" DP-1
exit 0
chmod +x ~/.config/touch_fix.sh
把上面的脚本,添加到linux mint开机启动项