双屏幕收银机触摸屏校正 - 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开机启动项