PrintScreenキーでは撮れないスクリーンショットを撮る(Ubuntu12.04でコマンドによるタイマー撮影)

追記:Githubにて「スクリーンショットのタイマー撮影」ショートカットを簡単に追加できる bashスクリプトを公開しました。

通常、スクリーンショットを撮りたければPrintScreenキーを押すだけで十分です。

しかし、UnityのDash、メニューバーを展開した状態、Webページのドロップダウンリスト、ポップアップメッセージなどを撮りたい場合、PrintSceenキーではこれらのスクリーンショットを取得することができません。

具体例としては、PrintScreenキーでは、上に載せたようなカレンダーウィジェットのスクリーンショットを撮ることができないと思います。試してみてください。


Ubuntu12.04のカレンダーウィジェット

スクリーンショットが撮れない状態では、PrintScreenキーを押しても無視されます。
あるいはPrintScreenキーを押す操作によってキャプチャしたい操作状態がキャンセルされてしまい、スクリーンショットを撮ることができない場合もあります。

コマンドによるタイマー撮影

以下のコマンドを使えば操作中のスクリーンショットを簡単に取得することができます。
$ sleep 5 ; gnome-screenshot


カメラの「タイマー」相当の機能を、コマンドによって実現しています。
このコマンドを実行すると、5秒後にスクリーンショット撮影のエフェクトが発生し、デスクトップにスクリーンショット画像が作成されているはずです。
この方法ならばさらに、両手が必要でスクリーンショットを撮ることができない操作であっても、PrintScreenキーを押せない状態でスクリーンショットを撮ることができます。

GIMPのメニューバーを開いた状態のスクリーンショット



コマンドラインから実行できるスクリーンキャプチャには、他にも、
import xwd scrot shutter
などがありますが、「http://d.hatena.ne.jp/ohnishiakira/20110120/1295536656」にて紹介されているように、import, xwdには「ウィンドウの透過がスクリーンショットに反映されず、綺麗なスクリーンショットが撮れない」という問題が起こります。
また、 scrot や Shutter は使用する前にインストールしておく必要があります。

gnome-screenshot はUbuntuにデフォルトでインストールされているため、ソフトウェアを追加でインストールする必要がありません。

ただし、 VirtualBox 4.3環境で Unity デスクトップを撮れないようです。
上手く行かなかったら他のアプリケーションを試しましょう。

VirtualBox4.3 Unity デスクトップにてスクリーンショット取得失敗の様子


なお、gnome-screenshot コマンド自体のオプションにタイマー撮影機能が存在します。
わざわざsleepを使ったのはなんとなくです。
トップウィンドウのみをキャプチャするオプションも存在します。
ただし、ウィンドウ領域からはみ出すと、バーや通知は見切れてしまいます。
基本的には全画面をキャプチャしたスクリーンショットを取得してから、GIMPなどで切り出す手法を取るのが確実です。


キーボードショートカットでタイマー撮影ができる設定を行う

設定の「キーボード」から「ショートカット」を選択して、
Shift+PrintScreenを割り当ててしまいました。

ショートカット追加のボタンと、スクリーンショットのショートカット


ショートカットで実行するコマンドには、連続する複数のコマンドは指定できません。
そこで、gnome-screenshotの持つタイマー撮影オプションを使用します。
コマンド(O)に、
gnome-screenshot --delay=5
を書き込みます。
秒数は使いやすいように調整してください。

独自のショートカット設定を追加

ショートカットキーはわかりやすいように、「選択領域のスクリーンショットを撮る」に使われているショートカットの Shift+Print を 割り当てることにしました。
私はこの機能を使わないのでショートカットキーの割り当てを上書きしてしまいましたが、それで困る場合は別のショートカットキーを割り当ててください。

ショートカットキーの割り当て

 以上で、ショートカットキーによるタイマー撮影を実現することができます。

0 件のコメント:

コメントを投稿

Linuxコマンドライン上でSVGベクタ画像をJPG等へラスタライズ変換する

 Linuxコマンドライン上でSVGベクタ画像をJPG等へラスタライズ変換することができるが、上手く変換されない場合がある。   以前作った魔法陣イラスト素材をイラスト素材ストックサイトへ登録しようと思い立ち、改めて素材用にラスタライズ変換をかけようとした。   ラスタライズ変換...