Ubuntu 18.04 で日頃、画面の スクリーンショット を取得するのに愛用している Gnome スクリーンショット gnome-screenshot は、撮影するとアプリも終了してしまうので、作業を進めながらその都度撮影する必要がある場合にとても面倒。 継続的 に撮影出来る方法を探してみました。
Gnome スクリーンショット
Ubuntuなど、Gnome系で画面のスクリーンショットを撮るのに愛用しているのはこの、Gnomeスクリーンショット。画面全体の他、ウィンドウ選択や、矩形範囲を指定してのスクリーンショットを画像出力することが出来ます。
撮影するとファイル出力先を指定するウィンドウに切り替わり、保存すると終了してしまいます。一回限りならこれで構わないのですが、続けて何度か取得したい場合はアプリを開き直すことになり、地味に不便。
継続的使用のためのオプションは無い
Gnomeスクリーンショットのウィンドウ上には、保存後も続けて使い続けることが出来そうなオプションも見当たりません。コマンドラインオプションも以下の通りで、GUI以上の目新しい項目はありません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ gnome-screenshot --help 用法: gnome-screenshot [OPTION…] アプリケーションのオプション: -c, --clipboard 取得したスクリーンショットをクリップボードへ直接送信する -w, --window 画面全体ではなくウィンドウ単体を取得する -a, --area 画面全体ではなく一部を取得する -b, --include-border スクリーンショットにウィンドウの境界を含める -B, --remove-border スクリーンショットからウィンドウの境界を取り除く -p, --include-pointer スクリーンショットにマウスのポインターを含める -d, --delay=秒 指定した時間を経過してからスクリーンショットを撮る [秒単位] -e, --border-effect=エフェクト 境界の縁に適用するエフェクトを指定する (shadow、border、vintage、または none) -i, --interactive 設定ダイアログを表示する -f, --file=ファイル名 スクリーンショットを指定のファイルに保存する --version バージョン情報を表示して終了する --display=DISPLAY 使用するXのディスプレイを指定する |
while文の無限ループで何度でも起動
調べてみると、同じことをフォーラムに質問されている方がいて、その回答の一つが今回の命題を解決してくれました。
while文の無限ループの中で、Gnomeスクリーンショットを呼び出すもので、これなら何度でも撮影が可能で、撮影を終えたらターミナル上でCtl+Cすることで終了。
注意しなければならないのはこれ、ループの中で呼び出すGnomeスクリーンショットには必ず -i オプションを付与し、インタラクティブモードで呼び出すこと。さもないと無限ループが次々とスクリーンショット画像を出力し続けて、システムのストレージを食い尽くすことになりかねません。
1 |
$ while true; do gnome-screenshot -i; done |
デスクトップエントリに入れて一発呼び出し
更にこの便利なワンライナーを次のように、Gnomeターミナルのデスクトップエントリに入れ、アイコンクリック一発でGnomeスクリーンショットの無限ループモードが起動するようにして完成です。
1 |
gnome-terminal -x bash -c 'while true; do gnome-screenshot -i; done' |