Ubuntuマルチスクリーンのタッチスクリーン設定
2023/11/17 | Gechic編集部
Ubuntuデスクトップ版はリリース以来、洗練された使いやすいインターフェースと低いシステム負荷で大変好評を得ており、多くのユーザーがWindowsノートパソコンやデスクトップをUbuntuデスクトップ版に再インストールし、古いPCでも新たな命を吹き込んでいます。Ubuntuはタッチ入力を既にサポートしていますが、単一モニター環境ではタッチパネルはプラグアンドプレイで利用可能であり、多指のタッチジェスチャーもサポートしています。しかし、デュアルモニターやマルチモニターのユーザーは、Ubuntuデスクトップがデュアルモニター時には正常に表示される一方、外部タッチスクリーンが正常に操作できないことに気付くでしょう。これは、そのUSBポートから送信されるタッチシグナルが外部モニターに正しくマッピングされていないためです。
最新のUbuntuデスクトップのLTS版(22.04.3 LTS)にはタッチ入力の設定オプションがまだ存在しないため、以下の手順に従ってタッチパネルのマッピング設定を手動で行ってください。
Xinputのmap_to_output 設定を使う
Ubuntuデスクトップのマルチスクリーン環境でタッチパネル・マッピングを設定する最も簡単な方法は、Xorgのxinputパッケージを使うことです。 設定手順は以下の通り:
1. Waylandを無効にする
XorgとWaylandは互換性がありませんので、まずデスクトップ設定ファイルでWaylandが無効になっていることを確認してください。Terminalで以下のコマンドを入力します:
$ sudo nano /etc/gdm3/custom.conf
WaylandEnable段落を探し、WaylandEnable=falseに設定されていることを確認してください。
2. ディスプレイの名前を確認する
Terminalで以下のコマンドを入力すると、システムのすべてのディスプレイ情報が表示されます。
$ xrandr
HDMIで接続されている外部タッチスクリーンを探します。この場合、タッチモニターのディスプレイ出力はHDMI-1として識別されます。(注:一般的にノートパソコンの内蔵スクリーンの接続方法はeDPです。)
3. タッチモニターのデバイスIDを確認する
Terminalで以下のコマンドを入力すると、すべての x-input デバイス情報が表示されます。Gechicのタッチモニターの場合、名前に "ILITEK "が含まれるデバイスを探してください。この例では、Gechic タッチパネルはコード 11 として識別されます。
$ xinput list
4. Map-to-Outputを使用してタッチパネルをマッピングする
Xinput には、ディスプレイへのマッピングを指定するための map to output コマンドが用意されている。 以下のコマンドをターミナルに入力し、システムが認識したUSBデバイス11をモニターHDMI-1にマッピングする。
$ xinput map-to-output 11 “HDMI-1”
Enterキーを押して上記のスクリプトを実行すると、タッチモニターが正しく反応します。
ただし、再起動または外部モニターのUSBケーブルを再接続すると、このマッピングは無効になるため、再度 map-to-output コマンドを入力する必要があります。利便性のために、デスクトップの電源が入った際に自動的に map-to-output コマンドが実行されるよう設定することをお勧めします。
map-to-output自動実行の設定
Xinputのmap-to-outputコマンドは、デスクトップ環境が有効になってから起動する必要があるため、デスクトップの自動実行ファイルとして設定することをお勧めします。詳しい手順は以下の通りです:
1. 外部タッチスクリーンの名前を確認する
タッチモニターのシステムIDが11であることは知られていますが、再起動やUSBポートの交換によってこのIDが変更される可能性があります。したがって、自動実行ファイルを設定する際は、デバイスIDではなくデバイス名を使用することをお勧めします。
Terminal で以下のコマンドを入力し、外部タッチスクリーンのすべての属性を表示し、デバ イスの名前が "ILITEK ILITEK-TP "であることを確認する(スペースを含む、シングルクォーテーション の間のすべてのデータ)。
$ xinput list-props 11
2. map-to-outputの指令ファイルを新規作成する
Terminalに以下のコマンドを入力し、.configディレクトリにtouchscreen.shというファイル名で新しいファイルを作成します。
$ sudo nano ~/.config/touchscreen.sh
ファイル内に以下のコマンドを入力し、完了後にCtrl+Xを押して保存して終了します。
#! /bin/bash
xinput map-to-output “ILITEK ILITEK-TP “ HDMI-1
Terminalに以下のコマンドを入力し、touchscreen.shの実行権限を付与します。
$ sudo chmod+x ~/.config/touchscreen.sh
3.デスクトップの自動実行ファイルを新規作成する
以下のコマンドを入力し、ルートディレクトリの.config/autostartの下にtouch.desktopという新しいファイルを作成します(autostartフォルダが存在しない場合は、自分で作成してください)。
$ sudo nano ~/.config/autostart/touch.desktop
ファイルに以下のスクリプトを入力し、保存して終了します。[注:自動実行ファイルの場所は、実際のファイルの場所にしてください。]
[Desktop Entry]
Type=Application
Name=touch
Exec=/home/gechic/.config/touchscreen.sh
4. 再起動
再起動後、外部タッチスクリーンをテストし、正しい位置でタッチ反応が表示されるはずです。
Waylandのマルチスクリーン・タッチ設定
Waylandは新世代のLinuxディスプレイマネージャーであり、シングルスクリーン環境下でより優れたグラフィカルインターフェースとタッチジェスチャーをサポートしています。しかしながら、Waylandはまだ開発途中であり、現時点ではマルチスクリーンセットアップでのタッチ入力のマッピングはできません。Waylandには出力にマッピングする同様のコマンドはなく、xinputコマンドはWaylandが開いているときには無効です。
Waylandでマルチスクリーン・タッチ・マッピングを設定したい場合、map_to_outputコマンドを使って2つ目のタッチパネルのマッピングを設定する前に、gnomeデスクトップをやめてswayを使ってアプリケーション・ウィンドウを設定しなければならない。
1. ディスプレイの名前を検索する
swayをインストールした後、ログイン画面の右下隅でswayを選択してログインします。Terminalを開き、次のコマンドを入力してswaymsgをインストールします。
$ sudo apt install swaymsg
インストールが完了したら、以下のコマンドを入力し、外部モニターの出力デバイス名を Unknown Gechic T131A 000000202130 として取得します。
$ swaymsg -t get_outputs
2. 入力デバイスの名前を検索する
入力デバイスの名前を検索するには、以下のコマンドを入力する。ここでのタッチモニターは、8746:21568:ILITEK ILITEK-TPとして識別される。
$ swaymsg -t get_inputs
3. ディスプレイにUSBデバイスマッピングを設定する
以下のコマンドを入力し、Sway のセットアップファイルを編集します。
$ sudo nano ~/.config/sway/config
出力のセクションで、以下のスクリプトを入力し、タッチモニターへのUSBデバイスマッピングを設定します。(注:3行目は外部タッチスクリーンの解像度と拡張位置を指定するので省略可能)。
set $display2 “Unknown Gechic T131A 000000202130”
set $display2-touch “8746:21568:ILITEK ILITEK-TP”
output HDMI-A-1 resolution 1920x1080 position 1366,0
input $display2-touch map_to_output $display2
4. 再起動
「reboot」と入力して再起動し、外部タッチスクリーンで正常にタッチ操作ができるようになります。
