Я создал файл рабочего стола в / usr / share / applications, но он не отображается в Dash

3

Я создал файл .desktop.

[Desktop Entry]
Exec=cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*
Terminal=false
StartupNotify=true
Categories=GNOME;Oracle;Utility;Development;
Type=Application
Icon=/opt/sqldeveloper/icon.png
Name=Oracle SQL Developer
Comment=what to say
Version=s.0.m.t.h.i.n.g
GenericName=ORACLE SQL DEVELOPER

Он присутствует в /usr/share/applications . Даже показывает значок, если он просматривается в Nautilus, но когда я нажимаю alt (клавиша штриховки или окна) и просматриваю его, он не отображается.

Также я пробовал:

sudo update-desktop-database
    
задан Gokul 20.09.2014 в 13:30
источник

1 ответ

5

Какова критическая проблема в вашем файле .desktop

Я попробовал ваш файл .desktop, заменив команду Exec= на другую (простую и рабочую), и файл выглядит функциональным и от Dash не отказывается.

Это распространенное недоразумение, что вы можете использовать строку Exec= файла .desktop, как если бы это было окно терминала. Это не относится к делу; например, ~/ или $HOME не работает, например. Хорошая (означающая: простая) практика размещения более сложных команд в отдельном файле сценария, который должен быть выполнен из файла запуска (ваш файл .desktop )

Запуск сложных команд из файла .desktop

Если вы специально хотите сохранить свою команду внутри вашего файла .desktop , вы должны сделать это следующим образом:

Exec=sh -c "your_complicated_command_here && the_rest_of_it"
(command inside quotes)

Запуск сценария из файла .desktop для выполнения задания

Предполагая, что ваша команда

cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*

работает из окна терминала, однако я бы просто создал небольшой скрипт:

#!/bin/bash
cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*

Сохраните его как scriptname.sh и измените строку Exec= вашего файла .desktop на:

Exec=sh /path/to/scriptname.sh

Затем ваш файл .desktop появится в Dash

Примечание

У вас больше проблем с вашим файлом .desktop, как упоминалось @Braiam и @MrVaykadji. Несколько примеров:

  • Вы не должны использовать только используемые значения в строке Categories= , так как вы можете читать здесь
  • Поле версии не требуется, но если вы его используете, используйте 1.0

Подробнее можно найти здесь . Хорошие инструменты вы можете найти здесь (также благодаря @Braiam и @MrVaykadji).

Критический, который делает ваш файл .desktop не отображаемым в Dash, однако, является линией Exec= .

    
ответ дан Jacob Vlijm 22.09.2014 в 19:37
источник