xfce-screenshoterを使っています。このツールではPrintScreenキーを押すと下記のようなダイアログが表示され、撮ったスクショをどのアプリケーションで開くか選ぶことができます。
普段はこの機能でGIMPを開き、編集してTwitterに貼り付けるみたいな事をよくやっているのですが、せっかく編集したスクショを保存せずに消してしまう事がほとんどでした。保存のたびに保存先を選ぶのが面倒だというのが一番の理由です。
そこで、GIMPを開く前にスクリプトを1つ間に入れて、一度ホームディレクトリ内で保存をしてからGIMPで開くようにしようと考えました。GIMPで編集したあとは上書き保存すれば良いので保存先を選ぶ手間もありません。
スクリプトを組み込む前に、アプリケーションで開くのこのリストはどこから取得してるんだろう?と疑問に思って調べてみました。ソースの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
無事、先ほど登録したアプリが一覧から選べるようになりました。