Fbsplashのテーマを16:9に改造
make menuconfigを少しじっくりやっていたら、面白そうなオプションを発見。
Device Drivers -> Graphics support -> Framebuffer Console support Console display driver support ---> Support for the Framebuffer Console Decorations
コンソールの装飾ってなんだろうなあと思ってGentooWikiで検索するとこんなものが見つかりました。
http://en.gentoo-wiki.com/wiki/Fbsplash
Fbsplash?なにそれ、と思ったら、VineやUbuntuでおなじみブートスプラッシュのことらしいです。
面白そうなんでやってみたんですが、16:9サイズのテーマが少ない!
仕方ないのでNewLinuxというテーマを1280x800pxに改造しました。
0.下準備
まず今回元にするNewLinuxはbootsplash-themesに含まれているので、これをemergeしておきます。
$ sudo emerge bootsplash-themes
これで各種テーマが/etc/splash/以下にインストールされますが、ここを直接触るとサンプルと自作とごっちゃになるわroot権限はいるわで面倒なので、作業はホームディレクトリ以下で行いました。
- テーマ名 NewLinux→MyNewLinux
- テーマディレクトリ /etc/splash/NewLinux→/etc/splash/MyNewLinux(/home/unarist/splash/MyNewLinux)
$ mkdir -p ~/splash/MyNewLinux $ sudo ln -s ~/splash/MyNewLinux /etc/splash/MyNewLinux
テーマ名でフォルダ分けされているので、テーマ名を変えることで丸ごとリンクを張ってしまおうという作戦。
1.元ファイルをコピー
1280x1024px用のテーマを使いたいのでこれをコピーしてきます。
$ cd /etc/splash/MyNewLinux $ cp /etc/NewLinux/1280x1024.cfg 1280x900.cfg $ mkdir images $ cp /etc/NewLinux/images/verbose-1280x1024.jpg verbose-1280x900.jpg $ cp /etc/NewLinux/images/silent-1280x1024.jpg silent-1280x900.jpg
2.silent画像の編集
silentってのはドーンと画像だけ表示されて、プログレスバーなんかが動いてるモードですね。
最初にやったときは上下を切り取っただけでしたが、ちょっとプログレスバーが下すぎたので調節。
- GIMP召喚
- 画像→キャンバスサイズの変更で1280x800で上下をカット
- 「Press F2 for verbose mode」を上に50px移動(カット→選択範囲移動→ペーストでよかったのか)
- 上書き保存
このテーマの場合プログレスバーはPress〜のテキストの下に表示されるので、あとで切り取った上端+移動した50pxを直してやります。
3.verbose画像の編集
verboseはスプラッシュなしと同様にinitメッセージやらが流れるモード(の背景画像)です。
これもsilent同様に上下切り取ればいいやーと思っていたらペンギンさんが大きかったので縮小することに。
- GIMP(ry
- 画像→画像の拡大・縮小で1000x800に縮小
- 画像→キャンバスサイズの変更で左280pxオフセットして1280x800にする
- 左端が透明になっているので真っ黒に塗りつぶす(真っ黒レイヤーを下に配置でよかったのか)
- 上書き保存
4.cfgファイルの修正
このファイルにverbose時のテキスト枠だとか画像のパスだとかプログレスバーだとかについて書かれています。
まずth=1024(テキスト枠の高さ)となっているのを800に、pic, silentpicのパスを〜/MyNewLinux/〜に修正します。
その下にbox silent〜と並んでいるのが画像の上に描画するもの、プログレスバーなどです。正直このフォーマットはあまり理解していませんが、まあ#b77200とかはどうみてもカラーコードだし、その前の数字四つはx1, y1, x2, y2に違いないよね!
先ほどsilent画像を編集した際にプログレスバーを上にずらしているので、各要素のy1,y2から(切り取った上端+テキスト移動分)=162pxを引いてやります。でこんな感じ。
# background box silent noover 255 701 1025 728 #00000050 box silent inter 255 701 255 727 #b77200 #b77200 #f2b700 #f2b700 box silent 255 701 1025 728 #b77200 #b77200 #f2b700 #f2b700 # black border box silent 255 701 1025 701 #b5b5b5 box silent 255 728 1025 728 #b5b5b5 box silent 255 701 255 728 #b5b5b5 box silent 1025 701 1025 728 #b5b5b5
これで完成です。既にフレームバッファ1280x800で起動していればsplash_managerでテストできます。
$ splash_manager -c demo -t MyNewLinux --tty=2 $ splash_manager -c demo -t MyNewLinux -m s --tty=2