Raspberry Pi 4Bでタッチ操作。右クリック、仮想キーボード、画面縦向き。

2023-12-28ソフトウェアRaspberry Pi

Raspberry Pi 4Bとタッチ対応モニターで、アプリを導入してタッチ操作を快適にします。今回は公式の7インチ タッチスクリーンディスプレイを使用していますが、他のタッチ対応モニターでも出来ると思います。

 

◻︎動作環境
・ハードウェア/Raspberry Pi 4 Model B 8G。
・Raspberry Pi OS full(32bit)Buster、Bullseye(32bit、64bit)、Bookworm(64bit)
・公式Pi 7インチ タッチスクリーンディスプレイ

 

更新履歴
2023-12-28/Pi OS 対応状況。
Busterはラインナップから消えましたが、Bullseye(32bit)でほぼ同じことが出来ます。※右クリックするにはBusterが必要。

2021-12-29/Pi OS Bullseye対応状況。(右クリックアプリがビルド出来ない)
2021-12-30/Pi OS Bullseye対応状況。(右クリックアプリ動作確認)

 

タッチ操作で右クリック。

画面を長押しすることで、右クリックと同じポップアップメニューを表示します。

アプリのインストール。

ビルドに必要なアプリをインストールします。

$ sudo apt install build-essential libevdev2 libevdev-dev

Githubからアプリをダウンロードして、フォルダに移動します。

$ git clone 'https://github.com/PeterCxy/evdev-right-click-emulation.git'
$ cd 'evdev-right-click-emulation'

右クリックアプリをビルドします。

$ make all

ビルドしたファイルを移動します。

$ sudo cp 'out/evdev-rce' '/usr/local/bin/'

ファイルに権限をつけて実行可能にします。

$ sudo chmod +x '/usr/local/bin/evdev-rce'

OS起動時の自動起動を有効にします。

$ sudo nano /etc/rc.local

「exit 0」の前に下記コマンドを追加します。

sudo /usr/local/bin/evdev-rce &

保存してデバイスを再起動します。画面を長押しすると、ポップアップメニューが開きます。

PeterCxy/evdev-right-click-emulation コマンドでカスタマイズ可能。

 

◎Bullseye(32bit)の場合

Pi OS Bullseye(32bit)では、ビルドに失敗してうまく導入出来ません。アプリ動作中のBusterから「evdev-rce」ファイルをコピーして、上記手順のまま進めます。

◎Bullseye(64bit)の場合 ※Bookwormは不可。

Pi OS Bullseye(64bit)では、ビルドに失敗してうまく導入出来ません。

①アプリ動作中のBusterから /usr/local/bin/evdev-rceにある「evdev-rce」を別のPCやDropboxなどにコピーします。
②Bullseye(64bit)で「make all」に失敗したら /home/pi/evdev-right-click-emulation/out の中に「evdev-rce」ファイルをコピーします。
③下記フォーラムを参考にコマンド入力をしてインストールします。手順5〜11まで。

Raspberrry Pi フォーラム

④sudo nano /etc/rc.local から「exit 0」の前に上記コマンドを追加して再起動します。

 

タッチ操作で仮想キーボード。

スマートフォンやタブレットのように、画面にキーボードを表示して文字入力が出来るようになります。他にも「matchbox」や「xvkbd」などもありますが、今回は「onboard」を導入します。※「X11」の場合、Bookworm(64bit)でも導入可。

アプリのインストール。

必要なアプリをインストールします。

$ sudo apt install onboard
$ sudo apt install at-spi2-core

 

◎onboardの設定。

メニュー→設定の中からonboardの設定を開きます。

◻︎全般/テキスト編集時に自動的に表示、画面のロック解除時に表示にチェックします。

 

◻︎ウィンドウ/画面の端に固定するにチェックをします。
設定から、横や縦方向に拡大するのチェックを外すと、手動でキーボードの大きさを変更出来ます。

 

その他好みに合わせて、レイアウトやテーマを変更します。オリジナルのテーマを作ったり、キー入力時に音を鳴らしたり出来ます。一部のアプリでは、文字を長押しするとテキスト選択が出来るようになります。

メニュー→ユニバーサル・アクセスからアプリを起動します。

 

タッチ操作で画面回転。

再起動せずに画面設定が変更出来る、XRandRを使って画面を回転します。xinputコマンドで、画面回転に合わせて、タッチデバイスも回転します。シェルスクリプトを作り、タッチ操作で回転したり戻したりします。

タッチデバイス名を確認。

接続されているタッチデバイス名を調べます。

$ xinput list

Virtual core pointerを確認します。接続しているタッチデバイスで名前が変わります。公式の7インチモニターだと「raspberrypi-ts」でした。※id番号でもOKです。

 

画面の回転とタッチ回転。

ターミナルにコマンドを入力してもタッチ操作が回転しないので、シェルスクリプトを作ります。xinput set-propの後に、調べたタッチデバイス名(またはid番号)を入力します。※Bullseye(64bit)、Bookworm(64bit)未検証。

◎画面とタッチ操作を右に回転します。

#!/bin/bash
xrandr -o right
xinput set-prop 'raspberrypi-ts' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1

新規ファイルを作り、「right.sh」で保存します。

 

◎画面とタッチ操作を元に戻します。

#!/bin/bash
xrandr -o normal
xinput set-prop 'raspberrypi-ts' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1

新規ファイルを作り、「normal.sh」で保存します。

 

ファイルに権限をつけて実行可能にします。

$ sudo chmod +x right.sh
$ sudo chmod +x normal.sh

作成したシェルスクリプトを実行すると、再起動をしなくても画面を回転したり戻したり出来ます。

 

◎その他の回転。

左に回転する場合。

xrandr -o left
xinput set-prop 'raspberrypi-ts' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1

180度回転する場合。

xrandr -o inverted
xinput set-prop 'raspberrypi-ts' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1

 

まとめ。

タッチ操作だけで、動画を見たりWEB検索やメール等で使ってみましたが問題なさそうです。スマートフォンやタブレットには敵いませんが、Raspberry Pi OSが使いやすくなりました。