Ubuntu用の簡単なシェルスクリプトを作ってみました。
指定フォルダにある画像のどれかを壁紙にします。
これを何らかの方法で自動実行させます。/etc/cron.daily/ に置くのが一番簡単かな?#!/bin/bash # GRUB2の壁紙を変更 # 画像があるフォルダ(png, jpg, tga) IMAGE_DIR="/home/sawa/画像" # 文字色/背景色 # http://www.gnu.org/software/grub/manual/grub.html#color_005fnormal # 背景色はblackで透明になる(black以外だと壁紙が表示されない) COLOR="white/black" # 選択しているOS部分の「文字色/背景色」 # 背景色はblackで透明になる COLOR_SELECTED="black/light-gray" # 今のGRUBは、インターレースPNG・プログレッシブJPEGに未対応 # 表示できない画像は適当に変換する必要がある # 初期設定に戻すには # sudo rm /usr/share/desktop-base/grub_background.sh # sudo update-grub # ----------------------------------------- [ -n "$1" ] && IMAGE_DIR="$1" if [ "$(id -u)" -ne 0 ]; then echo "$0: root only" 1>&2 ; exit 1 elif [[ ! -d "$IMAGE_DIR" || -L "$IMAGE_DIR" ]];then # シンボリックリンクだとパスが合わない可能性が echo "$0: $IMAGE_DIR : No such directory" 1>&2 ; exit 1 fi ini="/usr/share/desktop-base/grub_background.sh" if [ -r "$ini" ]; then source "$ini" && current="$WALLPAPER" fi list=$(find "${IMAGE_DIR}" -type f -iregex '.*\.\(png\|jpe?g\|tga\)$' 2> /dev/null) list_n=$(wc -l <<< "$list") new=$(shuf -n1 <<< "$list") # 連続で同じ画像になるのを回避する # ファイルが一つしかない場合は気にしない if (( list_n > 1 )); then while [ "x${new}" = "x${current}" ]; do new=$(shuf -n1 <<< "$list") done fi if [ ! -r "$new" ]; then echo "$0: Not Found image file" 1>&2 ; exit 1 fi [ -d "${ini%/*}" ] || mkdir -p "${ini%/*}" echo "WALLPAPER='${new}'" > "$ini" [ -n "$COLOR" ] && echo "COLOR_NORMAL='${COLOR}'" >> "$ini" [ -n "$COLOR_SELECTED" ] && echo "COLOR_HIGHLIGHT='${COLOR_SELECTED}'" >> "$ini" pgrep -f grub-mkconfig > /dev/null && exit # 念の為 update-grub 2> /dev/null || echo "$0: Failed update-grub" 1>&2
★使用例★ $ sudo wget http://linux.ikoinoba.net/file/script/change-grubwall -O /etc/cron.daily/change-grubwall $ sudo chmod +x /etc/cron.daily/change-grubwall $ gksudo gedit /etc/cron.daily/change-grubwall → IMAGE_DIR の場所を書き換える → お好みで文字色/背景色も $ sudo /etc/cron.daily/change-grubwall (一度手動で実行して動作確認)おおよそ一日一回、cron(anacron)がスクリプトを回してくれるはず。再起動のたびに変更したいなら、違う場所に置いたり書いたりテキトーに。
まぁとにかく背景が変われば成功です。
上の拙作スクリプトはUbuntu 11.04以降で使えると思います。それより前で動くかは不明。そういえば…Ubuntu 10.10の頃、moebuntuさんのブログに同じような記事があったっけ。
- 萌え萌えmoebuntu Grub2の壁紙&文字色ランダムに
- 萌え萌えmoebuntu Grub2ランダム表示まとめでゲソ
- 萌え萌えmoebuntu Grub2ランダム表示追記でゲソ
- 萌え萌えmoebuntu Grub2ランダム表示追記でゲソ 2
ちなみに、普通に画像を壁紙にするだけなら、/boot/grub/にファイルを置けばいいです(Ubuntu 11.04以降)
02:48 pm | コメントする |
1. こで@なごみ大明神 (Website) 2011/12/25 14:50
そのうち来るかしらとか思って放置してたんですがなかなか来ないのでなんか適当に画像置こうかしら。。。
2.
Sawa 2011/12/29 00:43
なぜかGRUBに関しては、Fedoraは保守的でしたねー
ん? 昔のFedoraのgrubって、背景がありましたよね?
grub2への移行で無くなっちゃったのか。
3. 初心者 2016/09/23 14:23
壁紙が定期的に変わる、というのは良いですね。
4. 初心者 2016/09/26 07:43
5. haru 2018/10/06 19:56
Description=Change Grub-Wall
[Service]
Type=oneshot
ExecStart=/usr/local/bin/change-grubwall
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target