unko.puzzle コマンドを作った

経緯

第41回シェル芸勉強会 東京会場の LT で、鈴木光宏 さんがシェル芸でターミナルなどを動かす方法を紹介されました。

www.youtube.com

また、たいちょー さんが作成された bigunko.show という、💩のドット絵を CLI で表示するコマンドがあります。

この2つを使って遊びたいなと思い、💩スクリプトを書きました。

つくったもの

複数のターミナルエミュレータを使った、スライディングブロックパズルです。

LT では xwit と xdotool が紹介され、そのうち xwit のデモがありましたが、macOS では Homebrew で xdotool が簡単にインストールできるようだったので、xdotool を使って実装しました。 macOS の xdotool は X11 上でしか動作しないようなので、XQuartz と、ターミナルエミュレータとして xterm が必要になります。 一応、Ubuntu でも動作するようにしてみましたが、Gnome 端末は画面サイズをあまり小さくできなかったため、xterm でのみ動作します。

super_unko リポジトリPR を送ってみたら、マージされました。 あと、これで遊びたいがために bigunko.show をキレイにする PR を送ったら、マージしていただきました。 ありがとうございます。

是非💩を切り刻んで、遊んでみてください。

使い方

一応、ドキュメント を追加したのでこちらをみてください。

感想

しばらく仕事が忙しくてあまり勉強できていなかったのですが、連休初日のシェル芸勉強会でいろいろと刺激を受けて、時間もあるのでじっくり作ってみました。 だいたい、構想と調査に半日、単純な実装に1日、そこからリファクタリングに1日といったところ。 あまり新しいことはできていないですが、それでもいろいろ調べて実装したので良い勉強になりました。

💩を切り刻むのにミスると、結構酷い絵ができあがりますが、これはこれで楽しい。

xdotool でウィンドウを動かすと、なぜか下にずれていく現象があったので、計算した移動先の座標に手元の macOSUbuntu 上で試したオフセット値を加える処理を入れましたが、環境によって異なりそうなので、もしかしたらずれるかもしれません。

謝辞

💩素材をお借りしました。 💩ライセンスなので良いかな?ありがとうございます。