Ubuntu 16.04(mate)でスクリーンショットを撮る

mateに変えてからスクリーンショットを撮る場合、今までのgnome-screenshotからmate-screenshotへとデフォルトで起動するプログラムも変わってしまいます。困ったことにショートカットの割当が「デスクトップ全体」(Print Screen)と「アクティブなウィンドウ」(Alt + Print Screen)しかありません。
その他のオプションでスクショを撮りたい場合は、メニューからプログラムを起動するか、コマンドラインで撮影することになりますが、どっちも面倒ですね。

Screenshot at 2017-08-26 10-30-52















というわけで、自分でショートカットを設定する必要が出てきます。コマンドラインで用意のあるオプション項目は10個ですが、組み合わせることができるので、もう少しレパートリーが増えます。

--window フォーカスを持つウィンドウのスクリーンショットを取得します。
--delay=seconds 指定した時間 (秒) が経過したらスクリーンショットを取得し、「スクリーンショットの保存」ダイアログを開きます。
--include-border ウィンドウの境界線を含んだスクリーンショットを取得します。
--remove-border ウィンドウの境界線なしでスクリーンショットを取得します。
--border-effect=shadow スクリーンショットを取得し、その周囲に傾斜した影を追加します。
--border-effect=border スクリーンショットを取得し、その周囲に境界線を追加します。
--interactive スクリーンショットを取得する前にオプションを設定するためのウィンドウを開きます。
--help このコマンドのオプションの一覧を表示します。

これをシステムメニューの「キーボードのショートカット」から設定します。

Screenshot at 2017-08-26 10-22-05


















追加項目からショートカットを設定します。
コマンドラインは「mate-screenshot」の後ろにオプションを付けます。例えば、5秒後に選択したウィンドウのスクリーンショットを撮る場合、「mate-screenshot --window --delay=5」となります。

Screenshot at 2017-08-26 10-45-01






コマンドラインをショートカット設定しているので、当然、これらは端末からでも実行できます。端末を開いていてコマンド入力の方がやりやすければ、そのままコマンド入力で行けます。

ちなみに、取得エリアの選択コマンド(mate-screenshot -a)は、キーボードショートカットを設定しても機能しません(または機能しても不具合がある)。端末からは機能します。これは有名なバグらしく、あちこちのサイトで話題になっています。

もう一つの方法として、端末にて「echo $DISPLAY」を実行して表示される値を入れたコマンドを設定します。私の場合は、「:0.0」です。

bash -c "DISPLAY=:0.0 mate-screenshot -a"

Screenshot at 2018-09-11 12:27:58



このコマンドはショートカットを高速連打すると機能しましたが、普通じゃないです。これも端末からは機能します。
凄く面倒になってしまったので、PrintScreenキーを押すとプログラムを表示するように設定しました。一手間増えますが、一番シックリきます。

mate-screenshot --interactive

これにショートカットキー(PrintScreen)を設定しました。プリントスクリーンを押すとスクリーンショットせずにプログラムのウィンドウが表示されるようになりました。何だかね・・・。

Screenshot at 2018-09-11 12:34:54












パネルにプログラムを追加する場合は、「アプリケーションのランチャー」からアクセサリにある「スクリーンショット」を指定すればgnome-screenshotで、「スクリーンショットの取得」を選択すれば、mate-screen-shotが選択され、パネルに表示できます。

Screenshot at 2017-08-26 10-50-44