Raspberry Pi Connectで共有する画面を切り替える

2026-10-28 with Claude Code raspi

Raspberry Pi Connectの画面共有は、モニタを複数つないでいても、ブラウザに映るのはそのうちの1枚だけです。別のモニタを見たいときに切り替えるスクリプトを、raspi25に置きました。

#!/bin/sh
# without argument: cycle through outputs / with argument: switch to specified output (e.g., rpi-connect-screen-switch HDMI-A-1)
S="$XDG_RUNTIME_DIR/rpi-connect-wayvnc-ctl.sock"
if [ -n "$1" ]; then
  exec wayvncctl --socket="$S" output-set "$1"
else
  exec wayvncctl --socket="$S" output-cycle
fi

やっていること

Raspberry Pi Connectの画面共有は、裏でwayvnc(Wayland用のVNCサーバ)が動いています。wayvncには、動作中の設定を外から変えるwayvncctlというコマンドがあり、制御用のUNIXソケット経由で指示を送ります。

使い方

画面共有しているユーザで実行します($XDG_RUNTIME_DIRが必要なので、別ユーザやsudoでは動きません)。SSHで入っても、同じユーザなら大丈夫です。

rpi-connect-screen-switch.sh            # 次のモニタへ
rpi-connect-screen-switch.sh HDMI-A-2   # HDMI-A-2へ

モニタ名はoutput-listで確認できます。

wayvncctl --socket="$XDG_RUNTIME_DIR/rpi-connect-wayvnc-ctl.sock" output-list

画面共有中のブラウザから、Raspberry Pi Connectのリモートシェルでこのスクリプトを実行すれば、その場で表示が切り替わります。