【Desktop entry】Linux環境でデスクトップアイコン(ショートカット)をfreedesktop.org仕様で作成する方法

前書き

本記事では、既存アプリや自作アプリのショートカットを作成したい場合、デスクトップアイコン(ショートカット)を用意する方法を示します。Linuxは、複数のデスクトップ環境(GNOMEMATEKDEなど)が存在しますが、手順はX Window System環境であれば同一です。その理由は、デスクトップアイコン(ショートカット)仕様がfreedesktop.orgによって(半標準として)定められているためです。

デスクトップアイコンを用意するまでの手順は、以下の通りです。本記事の手順は、CLI(Command Line Interface)を前提としています。ただし、本記事の最後に、GUIでのデスクトップアイコン追加手順も示します。

デスクトップアイコン(ショートカット)の導入手順
  • デスクトップアイコンの準備
  • デスクトップアイコン経由で実行するアプリの準備
  • デスクトップエントリファイルの作成
  • デスクトップファイルデータベースを更新

                                       

検証環境

本記事の手順に対応しているデスクトップ環境(X Window Systemを利用した環境)は、以下の通りです。

freedesktop.orgに準じたデスクトップ環境

                                     

デスクトップアイコンの準備

デスクトップアイコンは、freedesktop.orgによって拡張子・サイズの仕様が定められています。拡張子は、PNG(推奨)、SVG(オプション)、XPM(下位互換、非推奨)のいずれかです。サイズに関しては、推奨フォーマットのPNGのみを以下に一覧を示します。

PNG形式のアイコンサイズ(42×42以下は除外)
  • 48×48
  • 64×64
  • 72×72
  • 96×96
  • 128×128
  • 192×192
  • 256×256
  • 512×512
  • 1024×1024

アイコン画像(.png)の格納先は、以下の二箇所です。$Size部分は、アイコン画像のサイズによってディレクトリ名を変更します。例えば、48×48の場合は$Size=48×48、512×512の場合は$Size=512×512です。

  • “/usr/share/icons/hicolor/$Size/apps”以下(全ユーザ向け)
  • “/usr/local/share/icons/hicolor/$Size/apps”以下(全ユーザ向け)
  • “~/.local/share/icons/hicolor/$Size/apps”以下(個別ユーザ向け)

私の環境(Cinnamon)では、”/usr/share/icons/hicolor/”以下を確認すれば、自分の環境がどのサイズの画像に対応しているかが分かります。

今回の例では、/usr/share/icons/hicolor/512×512/apps/以下に、以下のアイコン用画像(only_win.png)を格納します。アイコン用画像は、好きな画像をネットから探してください。

                                         

デスクトップアイコン経由で実行するアプリの準備

準備するアプリは、自作アプリだけでなく、パッケージマネージャ経由で入手した既存アプリでも構いません。今回の例では、GTK+ライブラリを用いてウィンドウを表示するだけのアプリを準備します。

準備するアプリのソースコード(main.c)は、以下の通りです。詳細を把握する必要はありませんが、念の為、コメントを付けてあります。

GTK+3ライブラリのインストールを行った後、上記のアプリをGCCでビルドします。ビルド後、アプリを”/usr/local/bin”にインストールします。動作確認として、only_winアプリを実行すると、ウィンドウが表示されます。

                                            

デスクトップエントリファイルの作成

デスクトップエントリファイルは、デスクトップアイコン経由で実行するアプリに関する基本情報をまとめています。拡張子は”.desktop”であり、格納場所は主に以下の3箇所です。

  • “/usr/share/applications”以下(全ユーザ向け)
  • “/usr/local/share/applications”以下(全ユーザ向け)
  • “~/.local/share/applications”以下(個別ユーザ向け)

今回の例は、”~/.local/share/applications”以下にonly_win.desktopを作成します。記載内容は以下の通りです。注意していただきたいのは、#以降のコメントをそのまま記載しているとエラーとなります。

 

デスクトップエントリキーの一部を下表に示します。より詳細な設定も可能ですが、一般的な用途であれば下表のキーを設定すれば充分と思われます。

デスクトップエントリキー 説明
Encoding デスクトップエントリの文字コード設定
Name アプリ名やメニュー上の項目名
Version アプリのVersion
Comment アプリの説明文(Toolchip) 
Exec 実行対象のアプリへのPATH
Icon アイコンのファイル名を指定します。 ファイル名へのPATH、ファイル拡張子は指定しない。ただし、freedesktop.org仕様に則っていないPATHに画像を格納した場合、絶対PATH(拡張子含む)を指定します。 
Terminal Exec キーで指定したコマンドを端末で実行するかどうかを指定する。 true=Terminalを使用、false=Terminalを使用しない。
Type

項目のタイプを指定します。

  • Application: アプリを起動する場合
  • Link: ファイル、ディレクトリ、 FTP サイトにリンクする場合
Categories アプリのカテゴリを指定します。”;”区切りで複数個指定できます。カテゴリの一覧を下表に後述します。

                       

デスクトップエントリファイルのCategoriesは、以下の項目から任意の個数選択します(“;”区切り)。

Main Category Description
AudioVideo プレゼンテーション・作成・加工を行うマルチメディア用アプリ
Audio オーディオアプリ
Video ビデオアプリ
Development 開発用アプリ
Education 教育用アプリ
Game ゲーム
Graphics

ビューワ・作成・加工を行うグラフィックアプリ

Network Webブラウザのようなネットワークアプリ
Office オフィス用アプリ
Science 科学で用いるアプリ
Settings 環境設定用アプリ
System ログビューワやネットワークモニタのようなシステムアプリ
Utility 小規模なユーティリティアプリ

                                   

作成したデスクトップエントリファイルの検証

作成したデスクトップエントリファイルは、desktop-file-validateコマンドで書式が正しいかをチェックできます。書式エラーがある場合は、その箇所が指摘されるため、適宜修正します。

                 

デスクトップファイルデータベースを更新

デスクトップファイルデータベースの更新は、”Alt+F2″を同時押しした後、”r”(Enter)をすれば実施されます。この更新作業は、デスクトップエントリファイルを更新した場合、必ず実施しなければいけません。

今回の例では、アプリカテゴリ=グラフィックスとして設定しているため、下画像のようにグラフィックスメニューにデスクトップアイコン(ショートカット)が表示されます。

当然、デスクトップ上にもアイコンを設置できます。設置手順は、デスクトップ環境によって差異がありますが、デスクトップアイコンを右クリックすれば「デスクトップに表示する」旨の選択肢が出ます。設定が終了すれば、下画像のようにデスクトップアイコンが表示されます。

only_winアイコンをクリックすれば、前述の自作アプリ(Windowのみを表示するアプリ)が起動します。この起動時にアプリケーションの信頼性を問うポップアップが出た場合、「信頼します(実行OK)」を意味する選択肢を選んでください。

                                            

おまけ:GUIでデスクトップアイコンを追加する方法

デスクトップ画面で右クリックすれば、「新しいロンチャ(Launcher)を追加」する旨の選択肢があります。その選択肢を選んだ後、下図のように起動対象のアプリ情報を入力する画面が出てきます。この画面上で必須項目を入力すれば、デスクトップエントリファイルを作成しなくてもデスクトップアイコンを作成できます。

GUIでの設定方法が分からなかった場合、各デスクトップ環境における設定方法は、外部サイトに詳しい手順が示されています。

                                                                  

おすすめ