スクリーンショットを任意の範囲で手軽に撮る方法

ちょっと思いついたこと。


普通スクリーンショットを取るときは "PrintScreen" キーを使って画面全体を撮るか、"Alt + PrintScreen" でアクティブなウインドウのみ撮る。
しかし特定の部分だけが欲しいときは、わざわざGIMPで切り取ったりして少し不便だ。
そこで、"Shift + PrintScreen" を押した後にマウス選択で特定の部分を切り出して保存するようにしてみた。


と言っても、「ImageMagick」に含まれる "import" コマンドをスクリプトで使ってみよう、という簡単なものだ。
とりあえず、コードはこれ。

#!/bin/bash

if [ ! -f ~/Desktop/screenshot.png ] ; then
	output=~/Desktop/screenshot.png
else
	i=1
	while : ; do
	if [ ! -f ~/Desktop/screenshot-$i.png ] ; then
		output=~/Desktop/screenshot-$i.png
		break
	else
		i=$((${i} + 1))
	fi
	done
fi

import $output

Desktopに "screenshot.png" を保存するようにして "import" コマンドを実行するようになっている。
この時、同名のファイルがある場合は上書きしないために連番を後ろにつけて "screenshot-1.png" となるようにしている。


使い方は、まず上のコードを書いたファイルを "screenshot" という名前で作って実行権も与えておく。
注意してほしいが、デスクトップのフォルダが "~/Desktop" ではない人("~/デスクトップ" になってる人も多いはず)は書き換えないとうまくいかない。
できたファイルを、例えば ~/.script に置いておく。
そして、忘れてはいけないImageMagickのインストール。Ubuntuならこんな感じで。
$ sudo apt-get install imagemagick


次に、コマンドをショートカットキー"Shift + PrintScreen"に割り当てる方法。
まず、割り当てたいコマンドはこれ。
~/.script/screenshot
Compizを使っている人は、「CompizConfig 設定マネージャ」を使って「一般」の「コマンド」から設定できる。
「コマンド」タブの好きなところに割り当てるコマンドを書いて、「キー割り当て」タブでショートカットキーを与える。


Compizを使っていない人は "gconf-editor" が使える。この方法は以前も紹介したこのサイトが詳しい。
Linux Salad: アプリケーションにショートカット・キーを設定する


あとは、"Shift + PrintScreen" を押して撮りまくるだけだ。
ちなみに、一度起動すると撮らずに終わることができないのが難点かもしれない。