はじめに
約 2 年半ぶりの金曜ロードSHOW!での「天空の城ラピュタ」放映までいよいよあと 1 週間を切りました。
せっかくなので周りのサーバのログインメッセージ /etc/motd
をラピュタの AA に設定し、
当日を迎える心構えを万全にしておきましょう!
/etc/motd とは
サーバに SSH などでログインしたときに表示されるメッセージです。
(motd = message of the day)
$ ssh hoge
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-69-generic x86_64)
* Documentation: https://help.ubuntu.com/
New release '12.10' available.
Run 'do-release-upgrade' to upgrade to it.
Last login: Fri Jan 8 00:00:00 2016 from 192.0.2.1
$
RHEL/CentOS系
/etc/motd
は実ファイルになっていて、ログイン時に内容がそのまま表示されます。
デフォルトでは空ファイルなので、このファイルを直接編集して AA を表示させましょう。
Debian/Ubuntu系
/etc/motd
は /var/run/motd
へのシンボリックリンクになっており、
ログインするたびに /etc/update-motd.d
ディレクトリ内のスクリプトが順に実行され、
その実行結果が表示されるようになっています。
その中の /etc/update-motd.d/99-footer
では
/etc/motd.tail
が存在する場合、その内容を表示しています。
今回はこの /etc/motd.tail
を作成し AA を表示させます。
/etc/motd に AA を設定する
元絵の用意
まず AA の元となる画像を適当に用意します。
画像の背景を黒など一色で塗りつぶしておくと、生成される AA の見栄えが良くなります。
caca-utils のインストール
元絵の用意ができたら画像を AA に変換するために caca-utils
をインストールします。
※ RHEL/CentOS系 ではインストールの前に EPEL リポジトリを有効にしておきます。
(参考 : CentOSにEPELリポジトリを追加する 等)
$ sudo yum install caca-utils
$ sudo apt-get install caca-utils
AAの生成
caca-utils
がインストールできたら、さっそく先ほど用意した画像 hoge.jpg
から AA を生成してみます。
生成には caca-utils
に含まれている img2txt
を使用します。
-W
オプションでターミナルのサイズに合わせて横幅を指定します (単位は文字数)。
$ img2txt -W 100 hoge.jpg
さらに調整したい場合は img2txt
のオプションを利用できます。
$ img2txt --help
Usage: img2txt [OPTIONS]... <IMAGE>
Convert IMAGE to any text based available format.
Example : img2txt -w 80 -f ansi ./caca.png
Options:
-h, --help This help
-v, --version Version of the program
-W, --width=WIDTH Width of resulting image
-H, --height=HEIGHT Height of resulting image
-x, --font-width=WIDTH Width of output font
-y, --font-height=HEIGHT Height of output font
-b, --brightness=BRIGHTNESS Brightness of resulting image
-c, --contrast=CONTRAST Contrast of resulting image
-g, --gamma=GAMMA Gamma of resulting image
-d, --dither=DITHER Dithering algorithm to use :
none: no dithering
ordered2: 2x2 ordered dithering
ordered4: 4x4 ordered dithering
ordered8: 8x8 ordered dithering
random: random dithering
fstein: Floyd-Steinberg dithering
-f, --format=FORMAT Format of the resulting image :
caca: native libcaca format
ansi: ANSI
utf8: UTF-8 with ANSI escape codes
utf8cr: UTF-8 with ANSI escape codes and MS-DOS \r
html: HTML
html3: backwards-compatible HTML
bbfr: BBCode (French)
irc: IRC with mIRC colours
ps: PostScript document
svg: SVG vector image
tga: TGA image
troff: troff source
/etc/motd への設定
納得のいく AA 生成パラメータがみつかったら、
そのパラメータを使用して /etc/motd
または /etc/motd.tail
に書き込みます。
$ img2txt -W 120 hoge.jpg | sudo tee -a /etc/motd
$ img2txt -W 120 hoge.jpg | sudo tee -a /etc/motd.tail
確認
それではさっそくログインし直して、うまく設定できたかどうか確認してみましょう。
AA が無事表示されたら成功です!
あとがき
今回はバルスシーンを使いましたが、他にも飛行石などもインパクトがありそうです。
caca-utils
が使用している libcaca
は ffmpeg
や mplayer
でも対応しており
動画を AA で再生することもできるので、AA 道(?) を追求するのもまた一興かもしれません。
(とりあえず動くものが見たい場合は cacafire
や cacademo
を実行してみてください。)
それではログインするたびにラピュタを思い出して放映当日に備えましょう!
良い週末を