在雙顯示器上校準觸摸屏(一觸一非)
我正在使用 Debian 9。我有一台帶有 2 個內置顯示器的小型 PC,打算用作銷售點。它有一檯面向客戶的顯示器(非觸摸屏)和一檯面向收銀員的顯示器(觸摸屏)。每台顯示器的解析度為 1366 x 768。我有一個作為唯一 x 客戶端執行的 POS 應用程序 - 不存在視窗管理器和桌面管理器。這樣系統消耗最少的資源。即我可以像這樣從終端執行它:
xinit my-pos-app $* -- :1
只要我使用滑鼠,應用程序就可以正常執行。然而,目的是讓這項工作僅使用觸摸屏。
問題是觸摸屏沒有校準。我可以看到,當我觸摸它時,我觸摸的右側約 10 厘米處的一個點實際上被啟動了。所以我嘗試使用
xinput_calibrator
- 一個程序,它會在螢幕上顯示一個 gui 點來觸摸並自動校準觸摸屏。但是按照目前的設置,完成這一步是不可能的。這是因為只有一台顯示器是觸摸屏,而另一台顯示器不是,但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 將螢幕一分為二嗎?如果是這樣,那我該怎麼做?我被困住了。
我現在可以工作了。我做的第一件事是從 xorg repo 安裝最新版本的顯示驅動程序。我不確定這一步是否絕對必要,因為它似乎並沒有改變
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