Linux
aa
motd
caca-utils
libcaca

/etc/motd でラピュタ機運を盛り上げよう!?

More than 3 years have passed since last update.


はじめに

約 2 年半ぶりの金曜ロードSHOW!での「天空の城ラピュタ」放映までいよいよあと 1 週間を切りました。

せっかくなので周りのサーバのログインメッセージ /etc/motd をラピュタの AA に設定し、

当日を迎える心構えを万全にしておきましょう!

イメージ


/etc/motd とは

サーバに SSH などでログインしたときに表示されるメッセージです。

(motd = message of the day)


例(Ubuntuの場合)

$ 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リポジトリを追加する 等)


RHEL/CentOS系

$ sudo yum install caca-utils



Debian/Ubuntu系

$ sudo apt-get install caca-utils



AAの生成

caca-utils がインストールできたら、さっそく先ほど用意した画像 hoge.jpg から AA を生成してみます。

生成には caca-utils に含まれている img2txt を使用します。

-W オプションでターミナルのサイズに合わせて横幅を指定します (単位は文字数)。


RHEL/CentOS系・Debian/Ubuntu系 共通

$ img2txt -W 100 hoge.jpg


img2txt.png

さらに調整したい場合は img2txt のオプションを利用できます。


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 に書き込みます。


RHEL/CentOS系

$ img2txt -W 120 hoge.jpg | sudo tee -a /etc/motd



Debian/Ubuntu系

$ img2txt -W 120 hoge.jpg | sudo tee -a /etc/motd.tail



確認

それではさっそくログインし直して、うまく設定できたかどうか確認してみましょう。

イメージ

AA が無事表示されたら成功です!


あとがき

今回はバルスシーンを使いましたが、他にも飛行石などもインパクトがありそうです。

飛行石

caca-utils が使用している libcacaffmpegmplayer でも対応しており

動画を AA で再生することもできるので、AA 道(?) を追求するのもまた一興かもしれません。

(とりあえず動くものが見たい場合は cacafirecacademo を実行してみてください。)

それではログインするたびにラピュタを思い出して放映当日に備えましょう!

良い週末を :relaxed: