Macでcowsayならぬpokemonsayしてみた

view:41

最近、シェル極めるぞ〜って意気込んでるIsaacです。tmux最高!

ところで、tmuxで時計と癒しが同時に欲しいと思うことってあるじゃないですか?? cowsayで時計表示させても良いんですけど、はっきり言って微妙。調べてみたらpokemonsayなるものがあったので、今回はMacでpokemonsayしてみました。

インストール

まずはcowsayとfortuneを入れます。

 

本命のpokemonsayをインストールします。

 

 

トラブル1

これで入りました…って、勝手に${HOME}/bin作ってその中にpokemon{say,think}入れてんじゃねーか。やめろ。

ってことで、/usr/local/binにでも突っ込んでおきましょう。

これでpokemonsayならびにpokemonthinkコマンドが動けば、 rm -r ${HOME}/bin しちゃいましょう。

 

トラブル2

pokemonsayしたら「shufコマンドが無いぞ」って言われる…

入れましょう。

 

LinuxにあるのにMacに無かった、便利なコマンドたちが入ります。ただこのままだとgshufのように、どれも最初に’g’が付きます。今回使いたいのはshufコマンドなので、coreutilsインストール時に言われた通り.zshrc(.bashrc)に以下の行を追加します。

 

これでおk。

pokemonsay Hello でランダムに登場するポケモンがHelloと言ってくれたら成功。

pokemonsay

サンダースだ。可愛い。

時計を表示し続ける

本題に移りましょう。今回やりたいのは時間を教え続けてくれるポケモンの表示ですから、1秒ごとに時間をpokemonsayに渡すプログラムを作るだけです。

watchコマンドでやりたかったんですけど、ANSIコードが色に変換されて表示されない… なので、以下のようなプログラムを作成し、コマンド化しました。

pokemonsayは-pオプション無しでランダムにポケモンを表示しますが、それだと1秒ごとにポケモンが変わることになってしまいます。今回はpoketimeを実行するたびにポケモンを変えたいので、丁度入れたshufコマンドでランダムに選択することにします。

結果はこんな感じ。

poketime

モンジャラだ。可愛い。

 

勿論、ランダムじゃなくて常にピカチュウなんてのも可能。 pokemonsay -p Pikachu にするだけです。

tmuxだとこんな感じ。

poketime-on-tmux

良い。

コメントを残す