2018/08/03

.desktop ファイルを作ったのに Unity のランチャに表示されない場合の対処方法

先に結論を書いておくと、「**`.desktop` ファイルを直接 `~/.local/share/applications` 以下に作成するのではなく、`desktop-file-install` を使用してインストールしましょう。**」ということです。

`.desktop` ファイルにエラーが含まれている場合、`~/.local/share/applications/` 以下に直接作成しても Unity のランチャには表示されません。 この時、 `desktop-file-install` を使用するとエラーの原因をつかむ事ができます。 (`desktop-file-validate` という、エラーチェック専用のコマンドも用意されていますが、今回は使いません) まず任意のディレクトリに `.desktop` ファイルを作成し、以下のように `desktop-file-install` を実行します。 ```console $ desktop-file-install --dir="${HOME}/.local/share/applications" myapp.desktop myapp.desktop: error: file contains key "Nme" in group "Desktop Entry", but keys extending the format should start with "X-" myapp.desktop: error: required key "Name" in group "Desktop Entry" is not present Error on file "myapp.desktop": Failed to validate the created desktop file ``` 上記の例では `Name` を `Nme` とタイポしてしまったためにエラーが起こっています。 これを修正し、再度 `desktop-file-install` を実行すれば、`~/.local/share/applications/myapp.desktop` が**作成されます**他にエラーがなければ。 なお、`--dir` を指定しないと `/usr/local/share/applications` にインストールしようとします。 管理者権限`sudo`が必要ですし、全体に影響するので、基本的には `--dir` を付けた方が良いでしょう。 また、`--dir` には `~`(チルダ)は使用できないようです。そのため、上記では`${HOME}`を使用していますシェルによって動作は微妙にことなると思われます。 > 参考 > > [shortcuts - How to force Unity reload ~/.local/share/applications/ - Ask Ubuntu](https://askubuntu.com/a/447703) エラーがあっても無くても、`desktop-file-install` を使ってインストールする方が良いのは明らかですね。

0 件のコメント: