Мой пользовательский файл.desktop отображается в Dash как текстовый файл

Я недавно установил MATLAB на свой компьютер. Я обнаружил, что, хотя я мог легко запустить MATLAB из терминала, не было никакого исполняемого файла, на котором я мог бы дважды щелкнуть, чтобы запустить его. Поэтому я создал скрипт Bash для запуска MATLAB, а затем создал файл.desktop и сохранил его в /usr/share/applications/, Вот содержимое этого файла.desktop:

[Desktop Entry]
Type=Application
Name=MATLAB
Hidden=false
Exec=Desktop/Programs/scripts/runMatlab.sh
Icon=/usr/share/icons/matlabIcon.jpg
Categories=Application;

Если я загляну внутрь /usr/share/applications/Я действительно вижу исполняемый файл с именем MATLAB и соответствующим значком, и если дважды щелкнуть по нему, MATLAB будет работать нормально. Однако, если я наберу MATLAB в Dash, matlab.desktop появится в виде текстового файла. У него нет правильного имени (MATLAB) или правильного значка, и если я нажму на него, Gedit откроется вместо исполняемого файла.

Как я могу это исправить?

Я использую Ubuntu 14.04, кстати.

2 ответа

Решение

Если вы внимательно посмотрите на Dash, вы обнаружите, что matlab.desktop не отображается как приложение, но файл matlab.desktop появляется в поиске или недавно использовалась, поскольку вы, очевидно, редактировали его.

Ошибка

Причина в том, что Dash не видит это как действительный .desktop подать (как минимум) по следующей причине:

  • Вы не должны использовать относительные пути в .desktop файл (Desktop/Programs/scripts/runMatlab.sh относительно), но абсолютные пути.

Другими возможными причинами могут быть неверный путь к значку или тот факт, что вы вызываете скрипт без предыдущего sh (если сценарий не исполняемый, но с учетом другой информации в вашем вопросе, похоже, это не так).

Заметки

  • Другое дело, что если вы храните скрипт в том, что выглядит как локальный каталог, вы не должны хранить .desktop файл в /usr/share/applications, но в ~/.local/share/applications,

  • Там нет необходимости делать .desktop исполняемый файл, если вы запускаете его из Dash или из Launcher. Большинство пусковых установок в любом /usr/share/applications или же ~/.local/share/applications не. Только если вы найдете его на своем рабочем столе и запустите его.

Прежде всего, переместите файл.desktop в /usr/share/applications/ (глобальные средства запуска, для перемещения файла требуется разрешение root) или ~/.local/share/applications/ (только для текущего пользователя).*
РЕДАКТИРОВАТЬ: Когда вы запускаете desktop-file-install, в этом нет необходимости, поскольку он автоматически копирует файл в / usr / share / apps /

Затем, после проверки вашего файла.desktop на наличие ошибок с desktop-file-install filename.desktop (отсутствие вывода означает отсутствие ошибок, но даже некоторые предупреждения могут не помешать работе модуля запуска),
Вы добавляете его в тире Unity, запустив sudo desktop-file-install filename.desktop (EDIT: привилегии root, необходимые для доступа к / usr / share / Applications /, где хранятся глобальные средства запуска). Обратите внимание, что эта команда может добавить несколько строк в исходный файл.desktop.

Я надеюсь, что это решило вашу проблему. Привет!
(Источник: https://help.ubuntu.com/community/UnityLaunchersAndDesktopFiles)

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