Linuxにおける2台のタッチモニターの設定
2026/03/26 |Gechic 編集部
現在、LinuxディストリビューションではデフォルトでWaylandディスプレイプロトコルが採用されているため、Debian 13 (Trixie) で使用される多くのデスクトップ環境でも、デフォルトでWaylandを使用しています。これらのデスクトップ環境のシステム設定画面では、単一のタッチモニターを正しく検出して適切に設定できるようになりました。例えば、GNOME、Plasma、Ubuntuデスクトップ、Raspberry Piデスクトップでは、タッチモニターを正しく検出し、ディスプレイ設定内で解像度や表示向きを素早く調整できるため、プラグアンドプレイのような利便性が得られます。【詳細な設定手順については、Linux – タッチスクリーンの設定を参照してください】
ただし、「2台」のタッチモニターを同時に接続すると、拡張ディスプレイモードにおいてタッチの反応位置がずれてしまうことがあります。これは、Waylandのデュアルディスプレイでのタッチ入力への対応がまだ完全には整っていないためです。Linuxシステムで2台のタッチモニターを接続して拡張ディスプレイとして使用する必要がある場合は、以下の3つの解決策をお勧めします。
1. Plasmaデスクトップを使用する
Plasmaデスクトップは、ディスプレイ設定やタッチスクリーン設定を含むシステム設定のための優れたユーザーインターフェースを提供しており、Linuxで2台のタッチモニターを設定する最も簡単な方法です。以下では、Plasmaデスクトップ上で、同じデバイス名を持つ2台のタッチモニターを設定する方法について説明します。
🔵 ステップ 1. 表示設定
「システム設定」アイコンをクリックして、ディスプレイの解像度と位置を設定します。ここでは例として、T112Cタッチモニターをメインディスプレイとして、T111Bタッチモニターを右側の拡張ディスプレイとして使用します。
🔵 ステップ 2. タッチスクリーンの設定 (Touchscreen)
「タッチスクリーン」をクリックしてください。➜ 「デバイス」(Device)メニュー内に2つのタッチスクリーンが表示されます。
【注:Gechic製タッチモニターはすべて「ILITEK ILITEK-TP 」という名称です。】
① 「デバイス」メニュー内で、最初の「ILITEK ILITEK-TP」を選択してください。
② 「Enabled」にチェックを入れ、ターゲットディスプレイメニューからモニターを1つ選択します(この例では、最初にT112Cを選択します)➜「Apply」をクリックします。
③ もう一度「デバイス」メニューをクリックして、2つ目の「ILITEK ILITEK-TP 」を選択し、「Enabled」のチェックを外し、2つ目のタッチ入力を無効にします。➜「Apply」をクリックします。
④ T112Cをタップして四角形を描画します。T112Cに四角形が表示されれば、最初のILITEKデバイスのマッピングは正しく設定されています。表示されない場合は、「Target display」を別の項目(T111Bなど)に変更してください。
⑤ 最初のILITEKデバイスを確認した後、2台目のILITEKデバイスを有効にし、「Target display」メニューで別のモニターに設定してください。
🛎️注:
1) ターゲットディスプレイメニューに表示されている解像度は誤りですが、マッピングには影響しません。
2) タッチスクリーンの設定は再起動後に保持されません。そのため、システム起動後に再度設定を行う必要があります。
2. xinput map-to-output コマンドを使用する
Waylandでは、拡張デュアルスクリーンモードにおけるタッチ入力のサポートがまだ完全ではないため、GNOME、Ubuntu、Raspberry Piなどのデスクトップ環境では、拡張ディスプレイモードにおいてタッチ入力デバイスとして設定できるモニターは1台のみとなります。そのため、ここではWaylandを無効にし、代わりにX11環境を使用します。また、`xinput map-to-output` コマンドを使用して、2台のタッチモニターのマッピング位置を指定します。
🔵 ステップ 1. X11を有効にする
現在のデスクトップ環境でWaylandを無効化し、X11を有効にする具体的な手順は、お使いのデスクトップ環境によって異なります。この例では、Raspberry Pi OS(64ビット Trixie)のデフォルトデスクトップを起点として、Plasmaデスクトップ(X11)のインストールと有効化の方法について説明します。
sudo apt install tasksel と入力して、taskselをインストールします。インストールが完了したら、 tasksel と入力してプログラムを実行します。
KDE Plasmaを選択し、Tabキーを押して画面下部に移動してください。次に[OK]をクリックして確定します。インストールとシステム再起動後、左下メニューのログインオプションとして「Plasma X11」を選択してください。
🔵 ステップ 2.タッチモニターのデバイスIDを見つける
「ターミナル」を開き、xinput list コマンドを入力して、ILITEK-TP のデバイス ID を確認します。この例では、ID 8 と 9 が見つかりました。
🔵 ステップ 3.ディスプレイの名前を確認する
xrandr コマンドを入力して、ディスプレイの名前を確認します。この例では、HDMI-1 と HDMI-2 が表示されました。
【注:HDMI-2 の表示領域は 1920x1080+1920+0 と表示されています。これは、その表示領域が 1920 から始まることを意味します。したがって、HDMI-2 は右側に配置されたもの(T111B)です。】
🔵 ステップ 4. 「map-to-output」によるタッチマッピング
`xinput map-to-output` コマンドを使用すると、入力デバイスを表示領域にマッピングできます。2台のタッチモニターは同じ名前であるため、入力デバイス8とデバイス9がそれぞれどのモニターに対応しているかを区別することはできません。これを設定するには、次の手順で確認します:
まず、コマンド xinput map-to-output 8 HDMI-1 を入力し、T112Cをタップしてください。タッチの反応が正常であれば、デバイスID 8が左側のメインディスプレイであるT112Cであることを意味します。次に、コマンド xinput map-to-output 9 HDMI-2 を入力して、デバイスID 9をT111Bに割り当ててください。そうでない場合は、デバイスIDを変更する必要があります。
🛎️注:
1) 「map-to-output」コマンドを実行すると、両方のタッチモニターが正常に動作するようになります。
2) 再起動後、タッチスクリーンのデバイスIDが変更される場合があります。そのため、システムの起動後に設定を再度行う必要がある場合があります。
3. xinput map-to-outputの自動実行を設定する
入力デバイスのIDは固定値ではないため、タッチモニターが1台の場合、デバイス名「ILITEK ILITEK-TP 」を使用してタッチマッピングを設定することができます 【詳細については、Linux – タッチスクリーンの設定 をご覧ください】。しかし、同じ名前を持つ2台のタッチモニターを接続した場合、デバイス名だけでは入力ソースを識別できなくなります。
異なるタッチ入力デバイスを区別するために、それぞれのUSBポートを固定し、USBパスを識別情報として使用します。これに加え、システム起動時にUSBパスに基づいてデバイスIDを自動的に検出し、マッピング領域を設定するスクリプトを実行することもできます。
🔵 ステップ 1. タッチモニターのデバイスノードを確認する
タッチモニターのデバイスID(この例では8と9)を取得したら、xinput list-props コマンドを使用して入力デバイスのプロパティを一覧表示します。次に、プロパティの中からそれらのデバイスノードを見つけます。この例では、/dev/input/event8 と /dev/input/event0 です。
xinput list-props 8 と入力 ➜ デバイスノードとして/dev/input/event8 が表示されます。
xinput list-props 9 と入力➜ デバイスノードとして/dev/input/event0 が表示されます。
🔵 ステップ 2. タッチモニターのUSBパスを見つける
手順 1 で取得したデバイスノードに基づき、 udevadm info コマンドを使用して詳細を表示します。タッチ入力デバイスの USB パスを見つけ、そのパスの中からタッチモニターを特定するのに十分な文字列(例:「3-1:1.0」 や 「3-2.2:1.0」)を選択してください。【注:選択する文字列はシステム環境によって異なります!実際の状況に合わせてパス文字列を定義してください。】
udevadm info /dev/input/event8 と入力し、文字列"3-1:1.0"を選択します。
udevadm info /dev/input/event0 と入力し、文字列"3-2.2:1.0"を選択します。
🔵 ステップ 3. 自動マッピングスクリプトを作成する
以下のコマンドを入力して、touch.sh という名前のスクリプトを作成してください。
sudo nano ~/.config/touch.sh
ファイルに次のコードを入力してください。このスクリプトは、ILITEK-TPのデバイスIDを検出し、USBパスに基づいてマッピング位置を設定します。【注:この記事の最後にあるZipファイルをダウンロードすると、「touch.sh」ファイルを入手できます】。
🛎️注:
1) ファイルに実行権限を設定するには、必ず `sudo chmod +x` コマンドを使用してください。
sudo chmod +x ~/.config/touch.sh
2) 状況に応じて `touch.sh` ファイルを修正してください。赤枠内の値は可変です。ご自身で変更してください。
🔵 ステップ 4. 自動起動アプリを作成する
touch.sh を自動的に実行するには、Plasma デスクトップに自動起動アプリケーションを追加する必要があります。以下のコマンドを使用して touch.desktop を作成してください。【注. touch.desktop は ZIP ファイル内にあります。】
sudo nano ~/.config/autostart/touch.desktop
ファイルが実行可能であることを確認してください。
sudo chmod +x ~/.config/autostart/touch.desktop
🔵 ステップ 5. すべてのユーザーに対して自動実行を設定する
利便性を考慮し、すべてのユーザーに対して自動起動を有効にすることをお勧めします。スクリプトのパスをディスプレイマネージャの設定ファイルに追加してください。
① sudo nano /usr/share/sddm/scripts/Xsetup と入力し、➜ Plasmaデスクトップのディスプレイマネージャ(SDDM)の設定ファイルを編集します。
② ファイルに touch.sh のパスを追加してください。
▶Plasma X11ではSDDMがディスプレイマネージャーとして使用するため、/sddmフォルダ内の設定ファイルに自動実行パスを追加する必要があります。Plasma X11を使用していない場合は、お使いのデスクトップ環境に適した設定ファイルを探してください。
🔵 完了
再起動後、2台のタッチモニターのタッチ操作が正常に動作します。
▶タッチモニターのUSBポートが固定されている限り、スクリプトが自動的にタッチマッピング設定を行います。タッチモニターのUSBポートを変更した場合は、システムのUSBパスを再度確認し、touch.shファイルに適切なパス文字列を指定してください。
