最近のウィンドウ環境であれば、まるでWindowsのようにPrintScreenで簡単にスクリーンショットが撮れる。しかし、中にはやんちゃな環境を使っていて、古風な方法を是とする人も居るだろう。
X Window Systemでスクリーンショットを撮るコマンドはxwd
だ。起動するとカーソルが変わり、この状態で対象のウィンドウをクリックするとスクリーンショットが撮れる。WindowsでいうAlt + PrintScreenに近い。
xwd
画面の表示内容をすべてスクリーンショットに撮りたい場合、これはX Window Sytemでルートウィンドウと呼ばれるものだが、xwdの-root
オプションを使う。WindowsでいうPrintScreenにあたる操作と言える。
xwd -root
ただ、xwd -root
するとターミナルでxwdコマンドを実行した瞬間のスクリーンショットが撮られるため、sleep
コマンドをタイマーのように使ってスクリーンショットを撮ることが多い。
sleep 3; xwd -root
xwdコマンドは、恐ろしいことにスクリーンショットを標準出力に出力する。驚愕である。このため巷ではxwdコマンドの出力をリダイレクトして保存するよう薦める解説が多いようだ。
xwd > screenshot.xwd
私はもう何年もLinuxを使っているが、このxwd形式というのは、xwdの出力でしかお目にかかったことはない。gimpで編集できるので、これでも良いのだが、できればjpegやpngで出力したいものだ。
個人的にはもう1歩進めて、imagemagickのconvert
コマンドを併用して一気に変換してしまうのが良いと思う。convertコマンドはオプションに-
を与えると、標準入力を入力ファイルと見なす。xwdコマンドの出力をパイプでconvertコマンドに渡してやれば良い。
xwd | convert - screenshot.png
これで晴れてLinuxのスクリーンショットがpngで出力できるわけだ。convertを通せばリサイズ等ができるので、あとは好みの形に加工するスクリプトを作ってしまうと良いだろう。
ここまでxwdコマンドを使うことに拘ってきたが、imagemagickが入っているならimport
を使うのが簡単だ。使い方はxwdとほぼ同じだが、出力ファイルが指定できるので、コマンド1発でjpegやpngにできる。
import screenshot.png
2014/2/7追記
もっと今風なスクリーンショットツールとしてはshutterが便利である。