Relative paths in Desktop Entry files
Jun 5 2016 ยท Linux
I was playing around a bit with Desktop Entry files which provide a nice facade for hiding the execution details of a desktop application. However, a somewhat odd limitation is that relative paths are not supported. At least for the Exec key, I found a nice solution which makes use of bash and the %k field code allowed for the Exec value.
[Desktop Entry]
Version=1.0
Name=Run
Comment=Runner Test Application
Exec=bash -c 'cd $(dirname %k) && ./runner-linux-x86_64/dist/bin/run --app application.ini'
Path=
Icon=/usr/share/icons/hicolor/scalable/status/application-running.svg
Terminal=false
Type=Application
Categories=Utility;Application;Development;
The code above presumes that the application to run is at runner-linux-x86_64/dist/bin/run, relative to the location of the .desktop file.