xfce-screenshoterで独自スクリプトを登録する


xfce-screenshoterを使っています。このツールではPrintScreenキーを押すと下記のようなダイアログが表示され、撮ったスクショをどのアプリケーションで開くか選ぶことができます。

tkp_gicWaRt5.png

普段はこの機能でGIMPを開き、編集してTwitterに貼り付けるみたいな事をよくやっているのですが、せっかく編集したスクショを保存せずに消してしまう事がほとんどでした。保存のたびに保存先を選ぶのが面倒だというのが一番の理由です。

そこで、GIMPを開く前にスクリプトを1つ間に入れて、一度ホームディレクトリ内で保存をしてからGIMPで開くようにしようと考えました。GIMPで編集したあとは上書き保存すれば良いので保存先を選ぶ手間もありません。

どこからアプリのリストを得ているのか

tkp_nLZxSfEjVUr.png

スクリプトを組み込む前に、アプリケーションで開くのこのリストはどこから取得してるんだろう?と疑問に思って調べてみました。ソースのlib/screenshooter-dialogs.cを見るとここに答えがありました。

/* Populate the liststore using the applications which can open image/png. */
static void populate_liststore (GtkListStore *liststore)
{
  const gchar *content_type;
  GList *list_app;

  content_type = "image/png";

  /* Get all applications for image/png.*/
  list_app = g_app_info_get_all_for_type (content_type);

mime-type=image/pngで関連付けられてるアプリケーションをGNOMEから取得してるようでした。そうと分かればスクリプトをGNOMEに登録すればよい事になります。

スクリプトの登録

下記のようなスクリプトを作りました。これを登録してみましょう。

$ vi ~/.local/share/applications/

登録するには下記の設定ファイルのようなものを生成します。

データベースをアップデートする為、下記のコマンドを実行します。

$ update-desktop-database ~/.local/share/applications

登録されたか確認します。

$ gvfs-mime image/png
This tool has been deprecated, use 'gio mime' instead.
See 'gio help mime' for more info.

Default application for “image/png”: firefox-esr.desktop
Registered applications:
	firefox-esr.desktop
	ristretto.desktop
	google-chrome.desktop
	gimp.desktop
	rawtherapee.desktop
Recommended applications:
	firefox-esr.desktop
	ristretto.desktop
	google-chrome.desktop
	gimp.desktop
	rawtherapee.desktop

結果

無事、先ほど登録したアプリが一覧から選べるようになりました。