🖱️
デスクトップエントリを書こう
はじめに
本記事のターゲット
- 自分で作ったアプリケーションをデスクトップから起動できるようにしたい人
- パッケージマネージャを使わずにアプリケーションをインストールしたい人
前提
Linuxでxdg-menuを実装したデスクトップ環境を使用していること
この記事で説明すること
この記事ではデスクトップエントリを作成し、デスクトップ環境からアプリケーションを起動できるようにするまでの手順を紹介します。
デスクトップエントリには3タイプがありますが、本記事ではアプリケーションエントリの作成手順のみをカバーします。
仕様
.desktop
ファイル
.desktop
ファイルは以下の形式で記述します。
[Desktop Entry]
key1=value
key2=value
key3=value
...
以下はよく仕様されるキーの一覧です。
キー | 備考 |
---|---|
Type | デスクトップエントリのタイプ |
Name | アプリケーション名 |
Comment | ツールチップ用コメント |
Path | ワーキングディレクトリ |
Exec | 実行ファイルの絶対パス(引数を渡すことも可能) |
Icon | アイコン名(画像ファイルの拡張子を省略したもの) |
Categories | アプリケーションのカテゴリ |
上記の表はすべてのキーを網羅していません。詳細はこちらを参照してください。
アイコンパス
以下の順番でアイコンの探索が行われます。
$HOME/.icons
$XDG_DATA_DIRS/icons
$/usr/share/pixmaps
ハンズオン
シナリオ
Discord公式サイトからtar.gzファイルをダウンロードし、システム全体に対してインストールを行います。
ディレクトリ構造
ダウンロードしたtar.gzファイルを解凍すると、以下のディレクトリを得られます。
discord #tar.gzファイルを解凍したもの
└── Discord
├── Discord
├── chrome-sandbox
├── chrome_100_percent.pak
├── chrome_200_percent.pak
├── chrome_crashpad_handler
├── discord.desktop
├── discord.png
├── icudtl.dat
├── libEGL.so
├── libGLESv2.so
├── libffmpeg.so
├── libvk_swiftshader.so
├── libvulkan.so.1
├── locales
├── postinst.sh
├── resources
├── resources.pak
├── snapshot_blob.bin
├── v8_context_snapshot.bin
└── vk_swiftshader_icd.json
インストール手順
- 今回は予め
discord.desktop
が用意されています。[Desktop Entry] Name=Discord StartupWMClass=discord Comment=All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone. GenericName=Internet Messenger Exec=/usr/share/discord/Discord Icon=discord Type=Application Categories=Network;InstantMessaging; Path=/usr/bin
-
Exec
を見ると、/usr/share/discord
配下にある実行ファイルDiscord
が呼ばれることが分かるので、ディレクトリを移動します。$ mv ~/path/to/discord-0.0.50/Discord /usr/share/discord
-
Path
を見ると、/usr/bin
をワーキングディレクトリとしてDiscord
を起動することが分かります。mv
やcp
を用いてDiscord
を/usr/bin
に移動した場合、実行ファイルから2で配置した/usr/share/discord
内にあるファイルへアクセスできません。ですので、代わりにシンボリックリンクを作成します。$ ln -s /usr/share/discord/Discord /usr/bin/Discord
- アプリケーションディレクトリの中に
discord.png
という画像ファイルがあるので、それを/usr/share/pixmaps
配下に格納します。 - 以下のコマンドを用いて
discord.desktop
を検証します。ファイルに問題がなければ何も出力されません。$ desktop-file-validate /usr/share/discord/discord.desktop
- 最後に、以下のコマンドを用いて
discord.desktop
のインストールを行います。$ desktop-file-install --dir=/usr/share/applications /usr/share/discord/discord.desktop
参考
Discussion