在双显示器上校准触摸屏(一键式而非一键式)

在双显示器上校准触摸屏(一键式而非一键式)

我正在使用 Debian 9。我有一台带有 2 个内置显示器的小型 PC,我打算将其用作销售点。它有一台面向顾客的显示器(非触摸屏)和一台面向收银员的显示器(触摸屏)。每个显示器的分辨率为 1366 x 768。我有一个 POS 应用程序作为唯一的 x 客户端运行 - 不存在窗口管理器和桌面管理器。这样系统消耗的资源最少。即我可以从终端运行它:

xinit my-pos-app $* -- :1

只要我使用鼠标,该应用程序就可以正常运行。然而,我们的目的是让这项工作仅通过触摸屏进行。

问题是触摸屏没有校准。我可以看到,当我触摸它时,我触摸的地方右侧大约 10 厘米的地方实际上被激活了。所以我尝试使用xinput_calibrator- 一个程序,它会弹出一个图形用户界面,在屏幕上显示要触摸的点并自动校准触摸屏。但以目前的设置,不可能完成这一步。这是因为只有一个显示器是触摸屏,而另一台显示器不是,但xinput_calibrator它没有意识到这一点,而是将一半的图片放在每个显示器上。非触摸屏显示器上的校准点显然无法触摸,因此我无法完成该xinput_calibrator过程。

我注意到当我将鼠标移动到第一个显示器的右侧时,它出现在第二个显示器的左侧。因此系统似乎将两台显示器并排放置。我对这个低级显示器配置不太了解,但根据 的输出xrandr,系统似乎认为它只有 1 个显示器:

$ xrandr
Screen 0: minimum 320 x 200, current 2732 x 768, maximum 8192 x 8192
eDP-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm
x 193mm
1366x768  60.00*+  40.00
1360x768  59.80    59.96
1024x768  60.04    60.00
960x720   60.00
928x696   60.05
896x672   60.01
960x600   60.00
960x540   59.99
800x600   60.00    60.32    56.25
840x525   60.01    59.88
800x512   60.17
700x525   59.98
640x512   60.02
720x450   59.89
640x480   60.00    59.94
680x384   59.80    59.96
576x432   60.06
512x384   60.00
400x300   60.32    56.34
320x240   60.05
VGA-1 disconnected (normal left inverted right x axis y axis)
DP-1 connected 1366x768+1366+0 (normal left inverted right x axis y axis) 344mm x 194mm
1366x768  60.00*+  40.00
HDMI-1 disconnected (normal left inverted right x axis y axis)

此外,还xinput显示触摸屏的设备 ID 为12

请有人告诉我如何正确配置触摸屏。我需要先使用 xrandr 将屏幕一分为二吗?如果是这样那我该怎么做呢?我被困住了。

答案1

我现在可以使用了。我做的第一件事是从 xorg 存储库安装最新版本的显示驱动程序。我不确定这一步是否绝对必要,因为它似乎并没有改变xrandr太多输出,但无论如何它也没有什么坏处:

$ sudo apt-add-repository ppa:xorg-edgers/ppa
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ aptitude search <my-graphics-card-brand>
$ sudo apt-get install <corresponding package>

现在xrandr显示DP-1更多属性:

$ xrandr
Screen 0: minimum 320 x 200, current 2732 x 768, maximum 8192 x 8192
eDP-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768      60.00*+  40.00  
   1360x768      59.80    59.96  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   960x600       60.00  
   960x540       59.99  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   800x512       60.17  
   700x525       59.98  
   640x512       60.02  
   720x450       59.89  
   640x480       60.00    59.94  
   680x384       59.80    59.96  
   576x432       60.06  
   512x384       60.00  
   400x300       60.32    56.34  
   320x240       60.05  
VGA-1 disconnected (normal left inverted right x axis y axis)
DP-1 connected 1366x768+1366+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1360x768      59.80    59.96  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   960x600       60.00  
   960x540       59.99  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   800x512       60.17  
   700x525       59.98  
   640x512       60.02  
   720x450       59.89  
   640x480       60.00    59.94  
   680x384       59.80    59.96  
   576x432       60.06  
   512x384       60.00  
   400x300       60.32    56.34  
   320x240       60.05  
HDMI-1 disconnected (normal left inverted right x axis y axis)

然后启动 X 并运行以下命令以指定eDP-1为触摸屏:

$ xinput --map-to-output $(xinput list --id-only "Elan Touchscreen") eDP-1

(v.1.6.2)的联机帮助页xinput提到设备名称也可以作为字符串给出。因此,这也可以工作:

$ xinput --map-to-output "Elan Touchscreen" eDP-1

相关内容