Как я могу получить новые файлы * .desktop для отображения в панели запуска?

1111 Я уже попробовал другие ответы на этот вопрос, но безуспешно. Я использую Ubuntu 16.04. Я просто пытаюсь создать некоторые собственные действия для Терминатора, но я решил вернуться к основам и посмотреть, смогу ли я заставить что-то работать. Вот что я попробовал:

  1. Скопировал и вставил файл примера рабочего стола из https://standards.freedesktop.org/desktop-entry-spec/latest/apa.html [ 114] в файл с именем $HOME/foo.desktop
  2. Ran desktop-file-validate $HOME/foo.desktop. Нет вывода.
  3. Ран desktop-file-install --dir=$HOME/.local/share/applications $HOME/foo.desktop
  4. chmod 755 $HOME/.local/share/applications/foo.desktop
  5. Выйти из системы и снова войти в нее.

Новый лаунчер не появляется. Что мне не хватает? Есть ли какой-нибудь журнал, который объясняет, почему файл рабочего стола не появляется?

0
задан 4 September 2017 в 12:58

1 ответ

Это пример файла записи рабочего стола:

[Desktop Entry]
Version=1.0
Type=Application
Name=Foo Viewer
Comment=The best viewer for Foo objects available!
TryExec=fooview
Exec=fooview %F
Icon=fooview
MimeType=image/x-foo;
Actions=Gallery;Create;

[Desktop Action Gallery]
Exec=fooview --gallery
Name=Browse Gallery

[Desktop Action Create]
Exec=fooview --create-new
Name=Create a new Foo!
Icon=fooview-new

https://specifications.freedesktop.org/desktop-entry-spec/latest/apa.html

Обратите внимание на Поле TryExec=fooview. Вот что говорит стандарт входа рабочего стола:

TryExec

Путь к исполняемому файлу на диске, используемый для определения того, является ли программа фактически установлен. Если путь не является абсолютным путем, файл просматривается в переменной окружения $PATH. Если файл отсутствует или если он не исполняемый, запись может быть проигнорирована (например, не использоваться в меню).

Заметим, что fooview не является абсолютным путем, поэтому давайте посмотрим, находится ли он в $PATH:

$ type -P fooview
$ type -a fooview
bash: type: fooview: not found

Вот еще один способ проверить это:

$ gtk-launch foo.desktop
gtk-launch: no such application foo.desktop

Сравните с e.г. gtk-launch eog.desktop.

Поскольку нет исполняемого файла fooview, это означает, что "запись может быть проигнорирована (например, не использована в меню)", вот почему Unity не показывает его в меню; он думает, что приложение не было установлено.

Чтобы исправить это, вы должны заменить ключ TryExec либо абсолютным путем, либо исполняемым файлом где-то в $PATH.

См. также:

1
ответ дан 14 July 2020 в 15:10

Другие вопросы по тегам:

Похожие вопросы: