在我的Linux机箱上,我有2台戴尔触摸显示器,其类型完全相同。一个连接在HDMI-2上,另一个连接在DP-1上.要映射我使用的触摸显示
sudo xinput --map-to-output _ID1_ HDMI-2
sudo xinput --map-to-output _ID2_ DP-2问题是每次我断开和重新连接触摸设备的USB,ID,changes...typically,它在ID1和ID2之间倒置,从而在两个显示器上倒置触摸。我需要一种方法来确定分配给每个监视器的ID。是否有一种方法可以跟踪监视器特有的某些属性来识别它们?谢谢
洛伦佐
发布于 2022-10-10 15:30:32
如果您总是在触摸屏上使用相同的usb套接字,则可以将xinput为设备使用的id转换为usb总线上设备的固定“路径”。使用xinput list按名称查找触摸屏的2个ids。然后在每个id上使用xinput list-props并查找设备节点,例如:
$ xinput list-props 12 | grep 'Device Node'
Device Node (282): "/dev/input/event6"然后在路径udevadm info上使用/dev/input/event6,并查找DEVPATH或两个触摸屏之间不同且不改变的行,例如:
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4.3/2-1.4.3:1.0/0003:1111:9999.0005/input/input6/event6此路径显示事件发生在总线上的位置。只是某些部分,如2-1.4.3,应该是唯一的,足以识别usb。(如果幸运的话,触摸屏可能有一些独特的序列号,可以在此输出中显示)。下面是几行bash的实验:
name='The Touchscreen Name'
ids=$(xinput --list |awk -Fid= "/$name/"'{print $2+0}')
for id in $ids
do event=$(xinput list-props "$id" | awk -F'"' '/Device Node/{print $2}')
path=$(udevadm info "$event" |
awk -F/ '/DEVPATH=/{printf "%s %s %s\n",$7,$8,$9}')
echo "$id $path"
donehttps://unix.stackexchange.com/questions/720419
复制相似问题