ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(背景・色関係)
「ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(全般とカーネル関係)」の続き。ここでは背景画像と画面の色設定についてを扱う。
画面の解像度について
以下の「gfxmode」の後ろの部分を必要に応じて変更する。
ファイル名: /etc/grub.d/00_header
pc:gfxterm) cat << EOF set gfxmode=640x480 insmod gfxterm insmod vbe EOF
背景画像と色の指定
Debian/Ubuntuでは/etc/grub.d/05_debian_themeファイルの中で、指定された場所からの自動検出・設定が行われる。
Gentooではこのファイルは存在しないため、このDebian版を少しいじったファイルを用意することにした。
ファイル名: /etc/grub.d/05_theme
#! /bin/bash -e bgfile=/boot/grub/bg.png color_normal="black/black" color_highlight="magenta/black" menu_color_normal="cyan/blue" menu_color_highlight="white/blue" prefix=/ exec_prefix=${prefix} libdir=/lib platform=pc # for convert_system_path_to_grub_path() . ${libdir}/grub/update-grub_lib set_color_theme() { cat << EOF set menu_color_normal=${menu_color_normal} set menu_color_highlight=${menu_color_highlight} EOF } # check for usable backgrounds use_bg=false if [ "$GRUB_TERMINAL" = "gfxterm" ] ; then for i in ${bgfile} ; do if bg=`convert_system_path_to_grub_path $i` ; then case ${bg} in *.png) reader=png ;; *.tga) reader=tga ;; *.jpg|*.jpeg) reader=jpeg ;; esac if test -e /boot/grub/${reader}.mod ; then echo "Found background image: `basename ${bg}`" >&2 use_bg=true break fi fi done fi # set the background if possible if ${use_bg} ; then cat << EOF insmod ${reader} if background_image ${bg} ; then set color_normal=${color_normal} set color_highlight=${color_highlight} else EOF fi # otherwise, set the color theme if ${use_bg} ; then set_color_theme | sed -e "s/^/ /g" echo "fi" else set_color_theme fi
環境によっては変数libdirなどを変更する必要があるかもしれない。
使用できる画像形式はPNG/TGA/JPEGだが、その中でもある程度の制約はあるようだ。
http://wiki.debian.org/Grub/grub.cfg.manpage
の「background_image」を参照。
前景色と背景色、透明色
設定項目
色の指定は
http://wiki.debian.org/Grub/grub.cfg.manpage
の「where FB and BG can be one of :」以下の一覧の中から「前景色/背景色」の形式で指定する。
背景画像が使用されているときには
- color_normal
- color_highlight
が、背景画像が使用されていないときには
- menu_color_normal
- menu_color_highlight
が設定・使用されるようになっている。
背景画像使用時の透明色
背景画像が使用されているときの背景色を「black」にすると背景が透明になる。逆に言えば、背景画像使用時に「black」でない背景色を指定すると、背景が見えなくなる。選択項目(color_highlight)ではそのほうが目立つのでよいのだが、color_normalで「black」以外の背景色指定をするのはおすすめできない。
上の画像は
set color_normal=black/brown set color_highlight=white/dark-gray
で設定したもの(背景画像がほとんど見えない)。これを
set color_normal=black/black set color_highlight=white/dark-gray
Debian/Ubuntuでの背景画像の設定
Debian/Ubuntuで背景画像を変更するには、/etc/grub.d/05_debian_theme内の
/usr/share/images/desktop-base/debian-blueish-wallpaper-640x480.{png,tga}
の部分を、使用したいファイルの場所に置き換える。*1ここに書かれているファイルは、Debian/Ubuntuの「desktop-base」というパッケージに含まれるもの。上の画像の背景がその画像。
ここでは、試しに、Ubuntu Hardy(8.04)のデスクトップ背景画像を800x600に縮小したものを使用して、解像度も800x600にしてみた。
この画像の色設定は以下。
set color_normal=light-cyan/black set color_highlight=light-green/black
背景画像は、色(色相)や明るさ(明度)をよく見て選ばないと、字が読みにくくなる。今回の画像は縦方向に明るさが変化していることもあり、文字を乗せる背景としては向いていないのかもしれない。
背景画像を使用しない場合、メニュー内の色が付けられるのだが、color_normalの指定を追加*2することで、画面全体の背景色を付ける(黒から変更する)こともできる。
この画像の設定は
set color_normal=dark-gray/white set menu_color_normal=black/light-gray set menu_color_highlight=black/yellow
となっていて、画面の背景色を白にしている。
(「ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(他のOSの起動、電源オフなど)」に続く)
関連記事:
- Gentoo LinuxにおけるGRUB 2(1.96)のグラフィカルな端末(gfxterm)のフォントについて
- ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(全般とカーネル関係)
- ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(他のOSの起動、電源オフなど)
- GRUB 2(1.96)からハードディスク上のライブCDを起動するテスト
使用したバージョン:
- GRUB 1.96