带双显示器的触摸屏

ven*_*enz 6 nvidia multiple-monitors touchscreen 12.04

我有 ubuntu 12.04 和两台显示器,首先是触摸屏。

系统将分辨率识别为一个3840*1080分辨率的大屏幕。

问题是使用触摸校准时,校准器屏幕在两个屏幕上都会变大。因此,当触摸屏幕时,指针在 X 轴上移动两次。

有什么解决办法吗?

图形:带有 Twin wiew 的 NVIDIA

小智 12

首先,列出所有输入源xinput --list

? Virtual core pointer                       id=2    [master pointer  (3)]
?   ? Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
?   ? Sony Vaio Jogdial                         id=8    [slave  pointer  (2)]
?   ? Advanced Silicon S.A CoolTouch(TM) System id=11   [slave  pointer  (2)]
?   ? HID-compliant Mouse HID-compliant Mouse   id=13   [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)]
    ? Sony Vaio Keys                            id=7    [slave  keyboard (3)]
    ? Video Bus                                 id=9    [slave  keyboard (3)]
    ? Power Button                              id=10   [slave  keyboard (3)]
    ? IR camera                                 id=12   [slave  keyboard (3)]
    ? Cherry USB keyboard                       id=14   [slave  keyboard (3)]
    ? Cherry USB keyboard                       id=15   [slave  keyboard (3)]
    ? AT Translated Set 2 keyboard              id=16   [slave  keyboard (3)]
Run Code Online (Sandbox Code Playgroud)

拿起您感兴趣的设备(在本例中,我使用的是“Advanced Silicon SA CoolTouch(TM) System”),并记下它的 ID。

现在,您需要找出要将输入设备映射到的显示器。最直接的方法是使用xrandr

Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 16384 x 16384
HDMI-0 connected 1280x1024+1920+0 (normal left inverted right x axis y axis) 338mm x 270mm
   1280x1024     60.02*+
   1280x960      60.00  
   1280x720      60.00    59.94  
   1152x864      75.00    70.00  
   1024x768      60.00  
   800x600       60.32  
   720x480       59.94  
   640x480       59.94    59.93  
LVDS-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
   1920x1080     60.00*+  59.94  
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想将我的触摸设备映射到 output LVDS-0

将第一步(11此处)中的 ID 与第二步(此处)中的屏幕名称组合起来,LVDS-0然后运行以下命令:

xinput --map-to-output INPUT-ID SCREEN
Run Code Online (Sandbox Code Playgroud)

在我的例子中,这个命令是:

xinput --map-to-output 11 LVDS-0
Run Code Online (Sandbox Code Playgroud)

您的触摸设备不应正确映射到输入设备,并且不应需要任何额外配置。

这些设置不会在两次重新启动之间持续存在。请参阅有关如何使xinput命令持久化的问题


小智 3

archlinux wiki 是关于如何解决这个问题的最好描述,但这里有一些更具体的内容。

您应该运行 xinput --list 来识别输入设备的名称。我创建了一个电子表格来计算变换值。

电子表格位于:https ://docs.google.com/spreadsheets/d/13CNQjWfzpEkHM4ZdCcUWDTdQNaFqQ6TYTwatQsYcHcQ/edit?usp=sharing

我跑了你的数字(双 1920x1080 显示器)。

如果您的触摸屏位于左侧,则命令将为(“Advanced Silicon SA CoolTouch(TM) System”是我的输入设备的名称,替换为您的输入设备的名称):

xinput set-prop 'Advanced Silicon S.A CoolTouch(TM) System' --type=float 'Coordinate Transformation Matrix' 0.5 0 0 0 1 0 0 0 1
Run Code Online (Sandbox Code Playgroud)

对于右边来说,应该是:

xinput set-prop 'Advanced Silicon S.A CoolTouch(TM) System' --type=float 'Coordinate Transformation Matrix' 0.5 0 0.5 0 1 0 0 0 1
Run Code Online (Sandbox Code Playgroud)


小智 1

请参阅: https: //wiki.archlinux.org/index.php/Calibration_Touchscreen

您的矩阵是以下之一:

 Touch screen on the left: 0. 5 0 0 0 1 0 0 0 1
 Touch screen on the right: 0. 5 0 0. 5 0 1 0 0 0 1
Run Code Online (Sandbox Code Playgroud)

我有几乎相同的配置(但屏幕一个在另一个之上),并且在设置正确的矩阵后我经历了多次点击,如上面链接的底行所述。xorg-server我还没有找到在Ubuntu下重建的方法;当然所描述的过程不起作用。