Windowsや MacOSXだと Licecapやその他様々なツールで作業などを Gifで記録することができるのですが, Linuxだとそのようなツールがあまりありません. 動画形式で記録しそれを gifに変換というのがわりといろいろなところで書かれている印象ですが, そうやって作成した Gifは綺麗でないわりにファイルサイズがやたらでかいものとなることが多いです.
Linux環境にまともなものないんかいと思っていたところに見つけたのが byzanzです. これで作成した Gifはサイズが小さめなわりに品質は高く Githubの README.mdにも問題なく貼れます.
インストール
Debian系は以下のとおりです. (注: 古い Ubuntuだと PPAから取得する必要があります)
% sudo apt install byzanz
Redhat系は以下のとおりです(Fedoraにはパッケージがあるようです.)
% sudo yum install byzanz
使い方
以下のようになります.
% byzanz-record --duration=15 --x=200 --y=300 --width=700 --height=400 out.gif
いちいち座標を指定するのが面倒ですね. そこで拙作の byzanz-windowです.
byzanz-window
上述の通りコマンドラインからすべて操作するのは面倒なので, byzanzには byzanz-window.pyという Pythonで書かれたユーティリティが付属していました. しかしそれは Python2でしか動かないもので, Python3をメインに使っている私の環境では動きませんでした. そこでそれを Goで書き直し, マウスでドラッグした範囲を撮影する機能を追加しました.
リポジトリ
事前準備
Debian系の場合
sudo apt install byzanz xdotool x11-utils libx11-dev
Redhad系の場合
sudo yum install byzanz xdotool xorg-x11-utils libx11-devel
インストール
一応バイナリもおいていますが, あまり確認していないのでソースからインストールした方が確実かと思います.
% go get -u github.com/syohex/byzanz-window/cmd/byzanz-window
利用方法
基本的には以下のようになります.
% byzanz-window --duration=30 --delay=5 output.gif
--duration
で取る時間(単位: 秒), --delay
で何秒後から撮影を開始するか, 最後に出力するファイル名を指定します. 基本はこれらのオプションと後述するモード指定のためのオプションで十分と考えます. その他のオプションは --help
や README.mdを参照してください.
撮影モードは 2つあり, 指定したウインドウを記録する Windowモード(デフォルト)と特定の領域を記録する rectangleモード(--rectangle
モードを指定)
Windowモード
操作は以下のようになり,
出力される Gifは以下のようになります.
Rectangleモード
操作は以下のようになり,
出力される gifは以下のようになります.
おわりに
Linuxデスクトップ環境で作業を Gifで記録するための byzanzとそのユーティリティである拙作の byzanz-windowを紹介しました. 他にいいツールをご存知の方がいればぜひ教えていただければと思います.