.desktop file running sh script "There was an error launching the application."
I have a .desktop file:
[Desktop Entry]
Type=Application
Terminal=true
Name=RunMe
Exec=run.sh
When I double click the .desktop file, I get There was an error launching the application.
my run.sh
is:
#!/bin/sh
xulrunner-sdk/bin/xulrunner-stub --app xulrunner-sdk/bin/application.ini 2>~log.log
Double clicking on run.sh
and clicking run
runs the application fine. Both run.sh
and my .desktop
are executable.
What do I need to change in my desktop file to make this work?
To figure out what exactly is the error as you asked
What do I need to change in my desktop file to make this work?
After a lot of research, I found that you can indeed validate your desktop file with this command
desktop-file-validate your-file-here.desktop
This was the hidden command I was trying to find since hours. This, Saved my day :-)
This command will show you warning and errors wherever you have gone wrong. Credits : ubuntuforums
%k
is the desktop file path, use it with sh
to relative .desktop:
-
Change current working directory (
pwd
), Thenrun.sh
& commands inside all will run from there:[Desktop Entry] Type=Application Terminal=true Name=Run Me Exec=sh -c "cd `dirname %k`; run.sh"
-
Otherwise, passing it as parameter to
run.sh
and use it explicitly when you need insiderun.sh
:run.desktop
[Desktop Entry] Type=Application Terminal=true Name=Run Me Exec=sh -c "`dirname %k`/run.sh `dirname %k`"
run.sh
#!/bin/sh $1/xulrunner-sdk/bin/xulrunner-stub --app $1/xulrunner-sdk/bin/application.ini 2>$1/~log.log
Reference: How can I set the 'Path' variable in a .desktop file to be relative to the location where the desktop file is located?
- Goto /usr/share/app-install/desktop
- right click on your specific application
- go to properties
- copy the command section
- execute same from terminal