Cómo crear un lanzador de aplicaciones archivo .desktop en Linux?
Pregunta
He desarrollado una aplicación en Qt que utiliza un script de lanzamiento, myapp.sh
. He creado un archivo .desktop que pone en marcha este script, y un conjunto:
Comando: $PWD/myapp.sh
Trabajo ruta: $PWD
Sin embargo, $PWD
imprime mi directorio cuando inicio el archivo .desktop, lo que resulta en el intento de lanzamiento ~/myapp.sh
en lugar de ~/Development/build-directory/bin/myapp.sh
(siendo ese directorio donde reside el archivo .desktop). Por qué no está poniendo correctamente el directorio de trabajo donde el archivo .desktop se encuentra realmente y cómo puedo evitar esto sin tener que especificar una ruta absoluta en el archivo .desktop?
Solución
$PWD
mantiene la corriente directorio de trabajo de la cáscara, que no tiene nada que ver con el ubicación del archivo .desktop .. Una manera de hacerlo es con:
Exec=$(dirname %k)/myapp.sh
la especificación , %k
es "La ubicación del archivo de escritorio, ya sea como un URI (si por ejemplo metido desde el sistema de carpeta virtual) o un nombre de archivo local o vacía si no se conoce la ubicación ". Así que esto es myapp.sh
en el mismo directorio.