Мой пользовательский файл.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)