Avance.Lab

技術紹介

Raspberry Pi OS with desktopでタッチパネルを縦画面表示に設定する方法【完全ガイド】

公開日:2025.06.06 更新日:2025.06.06

tag: Raspberry Pi

こんにちは。wistaveです。
Raspberry Piでタッチパネルを使用する際、縦画面表示が必要になるケースは少なくありません。
今回は、Raspberry Pi OS with desktopでタッチパネルの表示を縦向きに変更する方法を詳しく解説したいと思います。

必要な物

  • Raspberry Pi本体
    今回使用したRaspberry Piは、Raspberry Pi 4 Model B 4GBです。
  • Raspberry Pi OSをインストールしたMicro SDカード
    今回使用したOSは、Raspberry Pi OS with desktop 64-bit (v.6.12)です。
  • タッチパネルディスプレイ
    今回使用したのは、HDMIとUSBで接続するタイプです。

必要に応じてキーボードとマウスもご用意ください。

Raspberry Pi OSのウィンドウマネージャーについて

Raspberry Pi OS Bookworm以降では、3種類のウィンドウマネージャーが選択できます。

X11: Openboxウィンドウマネージャー

  • 従来から使用されているウィンドウマネージャー
  • 多くの情報や設定例がX11を前提としている
  • 安定性が高く、互換性が優れている

Wayfire: Wayfireウィンドウマネージャー (Wayland)

  • Waylandベースの軽量かつ高速なウィンドウマネージャー
  • 直感的な操作と美しいアニメーション効果が特徴
  • プラグインによる柔軟なカスタマイズが可能
  • マルチディスプレイやタッチ操作にも対応
  • 日本語の情報は少なめ

Labwc: Labwcウィンドウマネージャー (Wayland)

  • Waylandベースの軽量ウィンドウマネージャー
  • Raspberry Pi OSの最新版で標準採用
  • X11に似た操作感と設定方法
  • シンプルでカスタマイズ性が高い
  • 日本語の情報は少なめ

3つのウィンドウマネージャーを試してみましたが、個人的には Wayfire > Labwc > X11 の順で動作が軽いと感じました。
設定においてはLabwcが1番簡単ですので、使用用途上の問題がなければLabwcを利用するのが良いでしょう。

設定方法

それでは、それぞれのウィンドウマネージャーでの設定方法を解説します。
今回はターミナルを使って設定していきます。
nanoエディターなどCLIツールの使い方は本記事では省略します。必要に応じて各自お調べください。
別のPCからRaspberry PiにSSHで接続して設定される場合、コマンドが少し異なることがあります。
コマンドが異なる場合、SSH用のコマンドを併記していますのでそちらをお試しください。

X11 (Openbox) を使用している場合

1. ディスプレイの名前を確認する

まず、接続されているディスプレイの名前を確認します。
以下のコマンドを実行します。

xrandr

# SSHの場合
DISPLAY=:0 xrandr

表示された情報の中で、connected primaryと書かれた行を探します。
その行に表示された最初の文字列がディスプレイの名前です。

HDMI-1 connected primary 1024x600+0+0 (normal left inverted right x axis y axis) 268mm x 477mm

上の場合、ディスプレイの名前は HDMI-1 です。

2. 画面を回転させる

次に、画面を回転させます。
以下のコマンドを実行します。

xrandr --output HDMI-1 --rotate right

# SSHの場合
DISPLAY=:0 xrandr --output HDMI-1 --rotate right
  • --output 先ほど確認したディスプレイの名前を指定します。
  • --rotate 回転する方向を指定します。
    右90度回転: right
    左90度回転: left
    180度回転: inverted

この時点で表示上の画面は回転したと思いますが、タッチパネルの座標がずれる場合があります。
タッチパネルの座標がずれる場合は、タッチパネルの設定を変更していきます。

3. タッチパネルのデバイスIDを確認する

xinputコマンドでタッチデバイスのIDを調べます。
以下のコマンドを実行します。

xinput list

# SSHの場合
DISPLAY=:0 xinput list

表示された情報の中で、タッチパネルだと思うデバイスを探します。

⎜   ↳ TSTP MTouch                               id=8    [slave  pointer  (2)]

上の場合、デバイスIDは 8 です。

4. タッチパネルの座標を設定する

次に、座標変換マトリクスを設定します。
以下のコマンドを実行します。

xinput set-prop 8 "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1

# SSHの場合
DISPLAY=:0 xinput set-prop 8 "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1
  • set-prop 先ほど確認したデバイスIDを指定します。
  • Coordinate Transformation Matrix タッチパネルの座標変換行列を指定します。
    右90度回転: 0 1 0 -1 0 1 0 0 1
    左90度回転: 0 -1 1 1 0 0 0 0 1
    180度回転: -1 0 1 0 -1 1 0 0 1

これで、タッチパネルの座標も変更されたかと思います。
ただ、この設定は再起動やシャットダウンを行うと元に戻ってしまうため、ここまで設定した内容を保存したいと思います。

5. 設定を保存する

Xセッション開始時に自動で実行されるスクリプトを作成します。
以下のコマンドを実行します。

sudo nano /etc/X11/Xsession.d/99-rotate-and-touch

以下を入力し保存します。

#!/bin/sh
xrandr --output HDMI-1 --rotate right
xinput set-prop 8 "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1

各値は、ご自身の環境に合わせて変更してください。

6. システムの再起動

sudo reboot

X11を使用している場合の設定は以上です。

Wayfire (Wayland) を使用している場合

1. ディスプレイの名前を確認する

まず、接続されているディスプレイの名前を確認します。
以下のコマンドを実行します。

wlr-randr

# SSHの場合
WAYLAND_DISPLAY="wayland-1" wlr-randr

表示された情報の中で、1行目に表示された最初の文字列がディスプレイの名前です。

HDMI-A-1 "NewTek JOYSX 0000000000001 (HDMI-A-1)"

上の場合、ディスプレイの名前は HDMI-A-1 です。

2. 画面を回転させる

次に、画面を回転させます。
以下のコマンドを実行します。

sudo nano ~/.config/wayfire.ini

ファイルの末尾に以下を追加します。
既に同じ項目が記載されている場合は、 transform の値が正しいことを確認してファイルを閉じてください。

[output:HDMI-A-1]
transform = 270
  • output 先ほど確認したディスプレイの名前を指定します。
  • transform ディスプレイの表示を回転させるために使用します。
    右90度回転: 270
    左90度回転: 90
    180度回転: 180

この時点で表示上の画面は回転したと思いますが、タッチパネルの座標がずれる場合があります。
タッチパネルの座標がずれる場合は、タッチパネルの設定を変更していきます。

3. タッチパネルのベンダーIDとモデルIDを確認する

以下のコマンドを実行します。

lsusb

表示された情報の中で、タッチパネルだと思うデバイスを探します。

Bus 001 Device 004: ID 0416:c168 Winbond Electronics Corp. MTouch

上の場合、ベンダーIDは 0416 、モデルIDは c168 です。

4. タッチパネルの座標を設定する

以下のコマンドを実行します。

sudo nano /etc/udev/rules.d/99-touch.rules

以下を入力し保存します。

ACTION!="remove", KERNEL=="event[0-9]*",
ENV{ID_VENDOR_ID}=="0416",
ENV{ID_MODEL_ID}=="c168",
ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"

5. システムの再起動

sudo reboot

これで、タッチパネルの座標も変更されたかと思います。
Wayfireを使用している場合の設定は以上です。

Labwc (Wayland) を使用している場合

1. ディスプレイの名前を確認する

まず、接続されているディスプレイの名前を確認します。
以下のコマンドを実行します。

wlr-randr

# SSHの場合
WAYLAND_DISPLAY="wayland-1" wlr-randr

表示された情報の中で、1行目に表示された最初の文字列がディスプレイの名前です。

HDMI-A-1 "NewTek JOYSX 0000000000001 (HDMI-A-1)"

上の場合、ディスプレイの名前は HDMI-A-1 です。

2. 画面を回転させる

次に、画面を回転させます。
以下のコマンドを実行します。

sudo nano ~/.config/kanshi/config

以下を入力し保存します。

profile {
  output HDMI-A-1 transform 270
}
  • output 先ほど確認したディスプレイの名前を指定します。
  • transform ディスプレイの表示を回転させるために使用します。
    右90度回転: 270
    左90度回転: 90
    180度回転: 180

3. システムの再起動

sudo reboot

Labwcの場合、上記の変更だけでタッチ座標も正しく変更されました。
Labwcを使用している場合の設定は以上です。

注意点

  • タッチパネルの種類によって設定方法が異なる場合があります。
  • 設定後、タッチの座標が正しく認識されない場合は、キャリブレーションが必要です。
  • 一部のアプリケーションでは、個別に表示の向きを設定する必要があります。
  • Waylandを使用している場合、一部のアプリケーションが動作しない可能性があります。
  • X11とWaylandの切り替えは、Raspberry Piの設定画面から行えます。

まとめ

最後までお読みいただきありがとうございました。
Raspberry Pi OSでタッチパネルを縦画面表示に設定する方法について解説しました。
この記事が、Raspberry Piでのタッチパネル縦画面設定の参考になれば幸いです。
快適なRaspberry Piライフをお楽しみください!

参考リンク

wistave

Webのフルスタックエンジニアを目指して勉強中!!

関連記事