
我有一台配備 1366x768 觸控螢幕的 HP 筆記型電腦。我需要運行一些 kiosk 軟體,需要 800x600 的分辨率,所以我用 xrandr 設定它:
xrandr --output eDP-1 --mode 800x600
看起來不錯,看起來 xrandr 在螢幕兩側添加了黑條以保持寬高比。
當我觸摸螢幕時就會出現問題。我距離螢幕中心觸摸得越遠,遊標就越偏離。看起來當我觸摸螢幕時,它會考慮側面的黑條來計算遊標應該在的位置。假設我觸摸物理螢幕的 25%,則遊標放置在可見螢幕的 25%,因此它確實對齊。
我嘗試使用這個連結校準觸控屏,但這根本沒有區別。
答案1
正如您自己已經發現的那樣,從觸控螢幕座標到螢幕座標的映射是由變換矩陣控制的。
通常,系統假設觸控螢幕跨越整個螢幕區域,這在大多數情況下是正確的。但是,如果顯示區域大於(例如多個顯示器)或小於觸控區域,則必須修改該變換矩陣。
傳統上,您必須Coordinate Transformation Matrix
通過設定xinput
。但由於您使用的是libinput
,所以有兩個區別:
- 該
xinput
屬性稱為libinput Calibration Matrix
- 變換矩陣的計算方式不同
判斷依據雷德瑞恩的貼文,「正確的做法是進行矩陣逆變換」。
老實說我不知道該怎麼做,但幸運的是他提供了一個名為西卡,它會為您校準觸控螢幕。
先決條件:
python3、tkinter、numpy(透過sudo apt-get install python3 pyhton3-tk python3-numpy
在終端機中運行來安裝)。
下載西卡並執行它。