Quiero establecer la variable 'Ruta' en un archivo .desktop en relación con la ubicación donde se encuentra el archivo de escritorio y no puedo hacerlo.
Cuando no lo declaro o lo configuro en blanco, el valor predeterminado es mi carpeta de inicio, sin importar desde dónde lo ejecute; y no acepta valores relativos a mi ubicación actual dentro del sistema de archivos.
Respuestas:
No puede establecer el CWD dentro de un archivo .desktop. Si desea que una aplicación tenga un CWD específico, deberá escribir un script de envoltura simple para la aplicación, que se vea más o menos así:
Puede reemplazar
your_program
allí con$@
y ejecutar el script con your_program como argumento, comorun-in-dir.sh your_program
. De esta manera, puede usar el mismo script para ajustar cualquier programa que desee iniciar en ese directorio.fuente
Puede evitar esto usando un mini script de bash en línea en su Exec. Esto agregará la ruta del archivo .desktop a PATH antes de ejecutar su comando.
% k será sustituido por la ruta del archivo de escritorio en sí. El
dirname
comando corta la parte del nombre de archivo, dejando solo el directorio. Una vez que PATH se establece de esta manera,your_command
se puede invocar sin una ruta completa.fuente
Usé esto:
% K es el nombre completo del archivo .desktop, incluida su ruta. Luego se usa por dirname para obtener una ubicación y cambiar el directorio a esa ubicación. Finalmente, ahora que está en el lugar correcto, encuentra el script y lo ejecuta.
fuente
Para los nombres de directorio con espacios en el nombre, esto finalmente funcionó para mí:
Crédito a /unix//a/144428/61349
fuente
Esto funcionó para mí Ubuntu 14.04:
La última especificación dice que % k apunta a la ubicación del archivo de escritorio:
fuente