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 を実行します。

1
2
3
4
$ 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

上記の例では NameNme とタイポしてしまったためにエラーが起こっています。 これを修正し、再度 desktop-file-install を実行すれば、~/.local/share/applications/myapp.desktop作成されます1

なお、--dir を指定しないと /usr/local/share/applications にインストールしようとします。 管理者権限2が必要ですし、全体に影響するので、基本的には --dir を付けた方が良いでしょう。

また、--dir には ~(チルダ)は使用できないようです。そのため、上記では${HOME}を使用しています3

参考

shortcuts - How to force Unity reload ~/.local/share/applications/ - Ask Ubuntu

エラーがあっても無くても、desktop-file-install を使ってインストールする方が良いのは明らかですね。

  1. 他にエラーがなければ 
  2. sudo 
  3. シェルによって動作は微妙にことなると思われます 
?

0 件のコメント: