【Raspberry Pi 4B】デスクトップの壁紙を無理やりスライドショーにする
Raspberry Pi でスライドショー
0. 壁紙を変更するには
壁紙用画像は/usr/share/rpd-wallpaperに用意されています。例えばlasers.jpgという画像。

/usr/share/rpd-wallpaper/lasers.jpg
この画像を壁紙にするときは、次のコマンドを実行することになります。画像パスは相対パスではなく絶対パスにしましょう。
pcmanfm --set-wallpaper=/usr/share/rpd-wallpaper/lasers.jpg
1. シェルスクリプトにする
コマンドで壁紙を変更できるということは、シェルスクリプトで壁紙を変更できるということになります。
例に、/usr/share/rpd-wallpaperにある画像をランダムに取り上げ、壁紙に設定するスクリプトを記述します。ここではslideshow.shというファイル名で保存しました。
#!/bin/bash
# 画像フォルダー
download_dir="/usr/share/rpd-wallpaper"
# jpgとpngファイル
files=("$download_dir"/*.jpg "$download_dir"/*.png)
# 無限ループ
while true; do
# 起動直後に壁紙が変更されることを防ぐ
sleep 600 # 10分
# sleep 10 # 10秒
# ランダムに選ばれた画像ファイルパス
random_image="${files[RANDOM % ${#files[@]}]}"
# 壁紙に設定する
pcmanfm --set-wallpaper=$random_image
done
ファイルに実行権限を与えます。ここでは個人利用目的のため、全てのユーザーに権限を与えていることに注意。セキュリティー上好ましくはありません。
chmod 755 slideshow.sh
2. シェルスクリプトを自動実行する
~/.config/autostart/**.desktopのように、~/.config/autostartというフォルダーに自動実行用のファイルを作ります。ここではslideshow.desktopという名前で作成します。
但し私の環境では、隠しフォルダー~/.configの下にautostartというフォルダーは存在しなかったので、これを作るところから行いました。
# ~/.config に移動
cd ~/.config
# autostart を作る
mkdir autostart
# autostart に移動する
cd autostart
# slideshow.desktop を作る
touch slideshow.desktop
slideshow.shの絶対パスを記載します。ここでは例に、/home/ユーザー名/.config/autostart/slideshow.shとしています。
[Desktop Entry]
Type=Application
Name=Wallpaper Slideshow
Exec=/home/ユーザー名/.config/autostart/slideshow.sh
3. 再起動
再起動します。
結果
私の環境では、これでスライドショー化できました。計測はしていませんが、多分
Discussion