Linux のタッチスクリーン設定 | Gechic
解決策を検索して見つける
< All Topics

Linux のタッチスクリーン設定

LinuxはKernal 3.8からタッチスクリーン入力をサポートしており、Debian、Ubuntu、Manjaroなどの最も人気のあるLinuxディストリビューションは、すべてUSBタッチスクリーンのプラグアンドプレイをサポートしています。しかし、これらのLinuxディストリビューションには、解像度や向きを設定するディスプレイ・セットアップ・インターフェイスが付属していますが、タッチ入力やキャリブレーションを設定するためのグラフィカル・インターフェイスはありません。そのため、拡張ディスプレイや縦長ディスプレイでは、タッチの反応位置が正確でないと感じるかもしれません。このような場合は、以下の手順に従ってタッチ入力の設定を手動で行ってください。

縦型ディスプレイのLinuxタッチスクリーン設定

Linuxシステムでポートレート表示アプリケーションに単一のタッチスクリーンを使用している場合は、タッチ変換マトリックスを 40-libinput プロファイルに追加してください。

① 40-libinput設定ファイルを探す

Termailで cd /usr/share/X11/xorg.conf.d と入力し、org.conf.dフォルダに入る。
ls コマンドを入力して、このフォルダの中にあるすべてのファイルを表示し、40-libinput.conf という名前のファイルがあることを確認します。

‘Transformation Matrix’ を追加する

以下のコマンドを入力し、40-libinput.confフォルダを開いて編集する。

sudo nano 40-libinput.conf

touchscreen のセクションを見つけ、新しい行を追加する
Option “TransformationMatrix” “0 -1 1 1 0 0 0 1”
Ctl+X”➜”y “を押してファイルを保存する。

再起動と完了!タッチスクリーンに指を置いてテストし、応答位置が正しいことを確認します。

sudo rebootを入力してコンピューターを再起動すると、起動後にセットアップが完了します。

“TransformationMatrix”の値はタッチパネルの機種によって異なります.Gechic タッチモニターの場合、縦表示では以下の値をとってください。
90° 回転= Option “TransformationMatrix” “0 1 0 -1 0 1 0 0 1”
270°回転 = Option “TransformationMatrix” “0 -1 1 1 0 0 0 0 1”

例えば、Ubuntuのデスクトップでディスプレイの向きを【Portrait Right】に設定した場合、270°回転の値が適用されます。

拡張ディスプレイのLinuxタッチスクリーン設定

接続されているタッチモニターが拡張に設定されている場合、xinputの map-to-outputコマンドを使って、タッチモニターが水平か垂直かに関係なく、外部ディスプレイへのタッチマッピングを指定しなければならない。今のDebianとUbuntuディストリビューションはデフォルトでwaylandを実行しているため、xinputを使用する前にデスクトップ上でwaylandを無効にする必要があります。設定方法は以下を参照してください:

Debian-Gnome デスクトップ

① waylandを無効にする

Terminalで以下のコマンドを入力し、daemon.conf ファイルを開く。檔 【注意: これはDebian12の設定ファイルです。Debian11の設定ファイルはcustom.confです。】

sudo nano /etc/gdm3/daemon.conf

#waylandenable=falseの行を探す。マーク#を削除し、ファイルを保存して再起動する。

② xinput listを実行する

xinput list コマンドを入力し、接続されているすべてのデバイスをリストアップし、タッチモニターのデバイスIDを検索する。(Gechic タッチモニタのデバイス名は ILITEK-TP と表示されます)。この例では外部接続されているタッチモニターは 22 です。

③ xrandrを実行する

xrandrコマンドを入力すると、接続されているすべてのディスプレイが一覧表示してタッチモニターの名前を探します。( この例では、接続されている拡張タッチモニターは “HDMI-1 “と名付けられ、解像度は 1920*1080+1366+0 と認識される )

④ xinput map-to-outputを実行する

以下のコマンドを入力し、ディスプレイ HDMI-1 にマッピングする xinput デバイス ID 22 を指定します。

xinput map-to-output 22 “HDMI-1”

⑤ 完了! 指でタッチ スクリーンをテストします。

Debian-Plasma デスクトップ

① waylandを無効にする

🔵左下の【System settings】 アイコンをクリック➜【Startup and Shutdown】をクリック➜點選【Behavior】ボタンをクリック➜ log in session で【Plasma (X11)】を選択します。
🔵左側の【Background Services】をクリック➜右側の列を下にドラッグして【KScreen 2】を見つけてチェックを外します。➜點選【Apply】をクリック(PlasmaにはKScreenという独自のウィンドウマネージャがありますので、KScreen機能も無効にしてください)
🔵再起動し、右下の【Plasma(X11)】を選択し、ログインします。

xinput listを実行する

Konsoleで xinput list コマンドを入力し、接続されているすべてのデバイスをリストアップし、タッチモニターのデバイスIDを検索する。(Gechic タッチモニタのデバイス名は ILITEK-TP と表示されます)。この例では外部接続されているタッチモニターは 11 です。

③ xrandrを実行する

xrandrコマンドを入力すると、接続されているすべてのディスプレイが一覧表示してタッチモニターの名前を探します。( この例では、接続されている拡張タッチモニターは “HDMI-1 “と名付けられ、解像度は 1920*1080+1366+0 と認識される )

④ xinput map-to-outputを実行する

以下のコマンドを入力し、ディスプレイ HDMI-1 にマッピングする xinput デバイス ID 11 を指定します。

xinput map-to-output 11 “HDMI-1”

完了! 指でタッチ スクリーンをテストします。

Ubuntu デスクトップ

① waylandを無効にする

Terminalで以下のコマンドを入力し、custom.confファイルを開きます。waylandenable=enableの行を探し、先頭に#を追加する。ファイルを保存して再起動する。

sudo nano /etc/gdm3/custom.conf

xinput listを実行する

Terminalでxinput list コマンドを入力し、接続されているすべてのデバイスをリストアップし、タッチモニターのデバイスIDを検索する。(Gechic タッチモニタのデバイス名は ILITEK-TP と表示されます)。この例では外部接続されているタッチモニターは 11 です。

③ xrandrを実行する

xrandrコマンドを入力すると、接続されているすべてのディスプレイが一覧表示してタッチモニターの名前を探します。( この例では、接続されている拡張タッチモニターは “HDMI-1 “と名付けられ、解像度は 1920*1080+0+0 と認識される )

④ xinput map-to-outputを実行する

以下のコマンドを入力し、ディスプレイ HDMI-1 にマッピングする xinput デバイス ID 11 を指定します。

xinput map-to-output 11 “HDMI-1”

完了! 指でタッチ スクリーンをテストします。

map-to-output 自動実行の設定

再起動または外部モニターのUSBケーブルを再接続すると、このマッピングは無効になるため、再度 map-to-output コマンドを入力する必要があります。利便性のために、デスクトップの電源が入った際に自動的に map-to-output コマンドが実行されるよう設定することをお勧めします。

① 外部タッチモニターの名前を確認する

タッチモニターのシステムIDが11であることは知られていますが、再起動やUSBポートの交換によってこのIDが変更される可能性があります。したがって、自動実行ファイルを設定する際は、デバイスIDではなくデバイス名を使用することをお勧めします。
Terminal で以下のコマンドを入力し、外部タッチモニターのすべての属性を表示し、デバ イスの名前が “ILITEK       ILITEK-TP   “であることを確認する(スペースを含む、シングルクォーテーションの間のすべてのデータ)。

指令ファイルを新規作成する

Terminalに以下のコマンドを入力し、.configディレクトリにtouchscreen.shというファイル名で新しいファイルを作成します。

sudo nano ~/.config/touchscreen.sh

ファイル内に以下のコマンドを入力し、完了後にCtrl+Xを押して保存して終了します。
#! /bin/bash
xinput map-to-output “ILITEK ILITEK-TP “ HDMI-1

以下のコマンドを入力し、touchscreen.shの実行権限を付与します。
sudo chmod+x ~/.config/touchscreen.sh

自動実行ファイルを新規作成する

以下のコマンドを入力し、ルートディレクトリの.config/autostartの下にtouch.desktopという新しいファイルを作成します(autostartフォルダが存在しない場合は、自分で作成してください)。
sudo nano ~/.config/autostart/touch.desktop
ファイルに以下のスクリプトを入力し、保存して終了します。(注:自動実行ファイルの場所は、実際のファイルの場所にしてください。)
[Desktop Entry]
Type=Application
Name=touch
Exec=/home/gechic/.config/touchscreen.sh

再起動

再起動後、外部タッチモニターをテストし、正しい位置でタッチ反応が表示されるはずです。