Creé un archivo de escritorio en /usr/share/applications, pero no aparece en Dash

Creé un archivo de escritorio en /usr/share/applications, pero no aparece en Dash

He creado un archivo .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

Está presente en /usr/share/applications. Incluso muestra el icono si se ve en Nautilus, pero cuando presiono alt (el guión o la tecla de Windows) y lo busco, no está visible.

También probé:

sudo update-desktop-database

Respuesta1

¿Cuál es el problema crítico en su archivo .desktop?

Probé su archivo .desktop reemplazando el Exec=comando por otro (simple y funcional) y el archivo parece funcionar y Dash no lo rechaza.

Es un malentendido común que se puede utilizar la Exec=línea de un archivo .desktop como si fuera una ventana de terminal. Ese no es el caso; expandir me gusta ~/o $HOMEno funciona, por ejemplo. Es una buena práctica (es decir, fácil) colocar comandos más complicados en un archivo de script separado, para ejecutarlos desde el archivo de inicio (su .desktoparchivo).

Ejecutar comandos complicados desde un archivo .desktop

Si deseas específicamente mantener tu mandoadentrosu .desktoparchivo, debe hacerlo de la siguiente manera:

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

Ejecutar un script desde el archivo .desktop para realizar el trabajo

Suponiendo que tu comando

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

funciona desde una ventana de terminal, sin embargo, simplemente crearía un pequeño script:

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

Guárdelo como scriptname.shy cambie la Exec=línea de su archivo .desktop a:

Exec=sh /path/to/scriptname.sh

Entonces tu .desktoparchivo aparecerá en Dash

Nota

Que hay más problemas con su archivo .desktop, como lo mencionaron @Braiam y @MrVaykadji. Algunos ejemplos:

  • No debes usar solo valores inventados en la Categories=línea, como puedes leeraquí
  • El campo de versión no es obligatorio, pero si lo usas, usa 1.0

Se puede encontrar másaquí. Buenas herramientas que puedes encontrar.aquí(también gracias a @Braiam y @MrVaykadji).

Sin embargo, el elemento fundamental que hace que su archivo .desktop no aparezca en Dash es la Exec=línea.

información relacionada