首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xinput的相同类型的地图触摸显示--这是

使用xinput的相同类型的地图触摸显示--这是
EN

Unix & Linux用户
提问于 2022-10-10 12:01:17
回答 1查看 215关注 0票数 2

在我的Linux机箱上,我有2台戴尔触摸显示器,其类型完全相同。一个连接在HDMI-2上,另一个连接在DP-1上.要映射我使用的触摸显示

代码语言:javascript
复制
sudo xinput --map-to-output _ID1_ HDMI-2
sudo xinput --map-to-output _ID2_ DP-2

问题是每次我断开和重新连接触摸设备的USB,ID,changes...typically,它在ID1和ID2之间倒置,从而在两个显示器上倒置触摸。我需要一种方法来确定分配给每个监视器的ID。是否有一种方法可以跟踪监视器特有的某些属性来识别它们?谢谢

洛伦佐

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-10-10 15:30:32

如果您总是在触摸屏上使用相同的usb套接字,则可以将xinput为设备使用的id转换为usb总线上设备的固定“路径”。使用xinput list按名称查找触摸屏的2个ids。然后在每个id上使用xinput list-props并查找设备节点,例如:

代码语言:javascript
复制
$ xinput list-props 12 | grep 'Device Node'
        Device Node (282):      "/dev/input/event6"

然后在路径udevadm info上使用/dev/input/event6,并查找DEVPATH或两个触摸屏之间不同且不改变的行,例如:

代码语言:javascript
复制
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的实验:

代码语言:javascript
复制
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"
done
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/720419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档