操作手順を説明する場合や、自分用の備忘録を作る際など、スクリーンショットを撮って加工する、といった作業を行うことがあります。今回はスクリーンショットの取得・加工など、「作業の様子を記録する」レシピを紹介します。
スクリーンショットの取得
Ubuntuではデフォルトでgnome-screenshotコマンドがインストールされ、[PrtScr]キーを押下することで起動できるようになっています(図1)。このコマンドは主に3種類の起動方法があり、それぞれ異なる動作をするようになっています。
- (1)[アプリケーション]→[アクセサリ]→[スクリーンショットの取得]で起動する。
この操作で起動された場合、細かいパラメータを指定してスクリーンショットの撮影が行えます。実際の動作はウインドウ、もしくはデスクトップ全体を対象にします。
ターミナルや[Alt]+[F2]などから、gnome-screenshot --interactiveとして起動しても同じ効果が得られます。また、コマンドラインから起動する場合、「取得するまでの遅延時間」は--delay=10などとすることで指定することができます(この場合は10秒待ってから撮影します)。
- (2) [PrtScr]キーを押す。
デスクトップ全体を即座に撮影します。gnome-screenshotコマンドに引数を与えずに起動した状態です。
- (3) [Alt]キーを押しながら[PrtScr]キーを押す。
アクティブなウインドウを即座に撮影します。gnome-screenshot --windowと同じ動作です。
これらのうち、(2),(3)はWindowsの基本的な操作と同じです[1]。
スクリーンショットの加工
撮影したスクリーンショットはそのままでは扱いにくいので、必要に応じて加工を行う必要があります。多くの場合は画像の切り抜きやモザイク処理などが必要となるでしょう。
こうした加工にはGIMPを用いるのが普通です。[アプリケーション]→[グラフィックス]→[GIMP Image Editor]から起動してください。
画像の切り取り
画像の必要な部分だけを切り抜くには、次のように操作します。
まず、GIMPでファイルを開いた状態でRectangle Select Tool(矩形選択ツール; GIMPのメインウインドウ左上の、点線で囲われた四角いアイコンで表示されるツール)を選択します(図2)。
このツールを用いて画像の必要な部分を選択し、[画像]→[Crop to Selection]とメニューをたどります。[Crop to Selection]を実行すると、選択した範囲のみが残りますので、そのまま画像を保存してください。
モザイク加工
あまり見せたくない情報が含まれた画像を加工する場合、次のように行います。
まず、GIMPでファイルを開いた状態で、Rectangle Select Toolでモザイク加工を施したい箇所を選択します。この状態で[フィルタ]→[ぼかす]→[選択的ガウシアンぼかし]を実行します。(図3)では、Rectangle Select Tool以外の部分にぼかしをかけています。
また、このように四角形だけでは構成しきれない範囲を選択するには、[Shift]を押しながら選択ツールを複数回用い、四角形を組み合わせていくと便利です。なお、ガウシアンぼかしはあくまで「ぼかし」ですので、真に重要な情報が含まれる場合、他のぼかしを利用してください。
範囲を指定したスクリーンショット
あらかじめ必要な箇所がわかっている場合、わざわざスクリーンショットを撮影してから画像を加工するのは少々不便です。おおざっぱな範囲選択で良ければ、Compiz(3Dデスクトップ)の機能を利用するのが便利です。この機能を有効にするにはAdvanced Desktop Effects Settings(CompizConfig設定マネージャ)が必要ですので、以下のコマンドを用いるか、Synapticからcompizconfig-settings-managerをインストールしてください。過去に何度か紹介していますので、既にインストールされている方も多いでしょう。
インストール後、[システム]→[設定]→[Advanced Desktop Effects Settings]を起動し、「エクストラ」グループにある「Screenshot」プラグインを有効にします。
この状態で[Meta]キー(多くの場合は[Windows]キーです)を押しながら、マウスの左クリックボタンを押下してください(押し下げたままにしてください)。この状態でマウスを動かすと、最初にクリックボタンを押下した点を起点に、青い四角が表示されるはずです。この選択範囲がそのまま保存されますので、適当な範囲を選択し、ボタンを離してください。
デフォルトの保存先はデスクトップですので、デスクトップ上に「screenshot1.png」といったファイルが作成されているはずです。この機能は厳密な範囲選択は困難ですが、大まかに画像を切り取りたい場合には大変便利な機能のはずです。
連続したスクリーンショット(wink)
操作の説明を行う場合、連続してスクリーンショットを撮影したいこともあるでしょう。このような場合、一枚ずつファイル名を入力する必要がある、通常のスクリーンショットツールは不便です。このような場合、「wink」というツールを用いるのが便利です。
標準ではインストールされていませんので、次のコマンドを用いるか、Synapticでwinkパッケージをインストールしてください。
なお、winkは本来、スクリーンショットベースのマニュアル的なドキュメントを作成するためのツールで、取得したスクリーンショットに矢印や吹き出しなどを入れ、グラフィカルな手順書を作ることができます。が、ここでは単にスクリーンショットを取得するためだけに利用しています。
これにより[アプリケーション]→[グラフィックス]→[wink]から起動できるようになるのですが、winkにはロケール周りのバグがあるため、日本語環境ではそのままでは起動できません。ターミナルから次のように操作して起動してみてください。
このままでは不便ですので、次のようにランチャを登録することをお勧めします。
まず、メインメニュー(Ubuntuアイコン)上で右クリックし、[メニューの編集]を選択します。(図5)のようなメニューの編集画面が表示されますので、この左側ペインで、「グラフィックス」を選択します。
右側ペインに「グラフィックス」メニューに表示されるアイテムが列挙されますので、既存の「wink」アイコン上で右クリックし、[プロパティ]を開きます(図6)。
表示されたダイアログ上で、「コマンド」に「/bin/sh -c 'LANG=C wink'」と入力します。この状態であればメニューからwinkを起動することができます。
winkの使い方は比較的単純で、まず最初に[File]→[New]と選択し、基本的な設定を行います(図7)。
対象とする範囲としてScreen・Window・デスクトップ上の一定の範囲を選ぶことができますが、大抵はWinodwにするのが便利でしょう。プルダウンメニューで「Window」を選択し、キャプチャ対象にしたいウインドウを選択したら、ダイアログ下部の[OK]を押します。
あとは[Pause]でスクリーンショットを一枚、[Shift]+[Pause]で連続的な撮影といった形で、手軽にスクリーンショットの取得が行えます。場合によっては、対象をScreenにした状態で常駐させておき、なにか作業をするたびに[Pause]を押す癖を付けておくと便利でしょう。
ターミナル操作の保存(script, ttyrec)
ターミナル上の操作を記録したり説明したりする場合、実行したコマンドを記録しておきたいことがしばしばあるはずです。ターミナルでの操作はただの文字情報ですから、いちいちスクリーンショットを撮るよりは、ターミナル上で[全て選択]し、テキストエディタにコピー&ペーストして利用する方が便利です。またこのような場合、scriptやttyrecといったコマンドを用いると便利です。
script
scriptコマンドはUbuntuに標準でインストールされている、ターミナル上の操作を記録するためのツールです。scriptコマンドを実行することで自動的に開始されますので、その状態でコマンド操作を行い、exitで終了してください。デフォルトではtypescirptというファイルに操作ログが記録されます。
この操作ログにはscript実行中に行われた全てのターミナル出力が記録されていますので、後からコマンドの実行結果などを確認するのに便利です。特に、configure && makeなどを実行する場合は、scriptを用いて出力を保存しておき、後で参照できるようにすることをお勧めします。
また、scriptコマンドにはscriptreplayという、操作の様子を再生するコマンドが準備されています。これは次のように操作します。
scriptreplayを用いることで、操作の様子を擬似的な動画として再生できます。操作の説明などに用いると便利でしょう。なお、ファイルを受け渡す場合は、timingfileとtypescriptの2つを揃えて受け渡すようにしてください。
ttyrec
ttyrecは、scriptreplayと同じことを、より洗練した形で実行できるツールです。デフォルトではインストールされていませんので、次のコマンドを用いるか、Synapticでttyrecコマンドをインストールしてください。
操作はscriptとほとんど同じで、記録したい操作の前にttyrecコマンドを実行しておくだけです。デフォルトではttyrecordというファイルに操作が記録されます。再生は「ttyplay ttyrecord」を実行してください。
使い分けとしては、scriptはあくまで実行したコマンドの記録に使い、vimやEmacsなど、複雑な操作が必要なアプリケーションでは、ttyrecファイルを受け渡すのがスマートでしょう(ttyrecの方が再生時に不自然さがないですし、記録のためのコマンドも直感的です。なにより、受け渡す必要があるファイルが1つだけなのが大きなメリットです)。