![在双显示器上校准触摸屏(一键式而非一键式)](https://linux22.com/image/140257/%E5%9C%A8%E5%8F%8C%E6%98%BE%E7%A4%BA%E5%99%A8%E4%B8%8A%E6%A0%A1%E5%87%86%E8%A7%A6%E6%91%B8%E5%B1%8F%EF%BC%88%E4%B8%80%E9%94%AE%E5%BC%8F%E8%80%8C%E9%9D%9E%E4%B8%80%E9%94%AE%E5%BC%8F%EF%BC%89.png)
我正在使用 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