Les chemins d'accès relatifs ne sont pas pris en charge *.
Une solution consiste à avoir un installateur. Ce script met à jour le fichier de bureau en fonction de l'emplacement d'exécution du script. Rendre le script exécutable, et l'utilisateur peut cliquer pour l'installer. Le script nécessite que le fichier de bureau soit accessible en écriture.
Cela a été fait avec Linux à l'esprit. Le fichier est nommé autorun.sh; mais ce n'est qu'une convention, elle ne fonctionnera pas automatiquement. Si vous le déployez sur un autre système que Linux, nommez le fichier autrement (autorun.linux) ou adaptez-le pour faire différentes choses en fonction de la plate-forme.
#! /bin/sh
#### Fixup $APPNAME.desktop.
APPNAME=xvscatter
ICONNAME=xv_logo.png
cd $(dirname "$0")
APPDIR="$PWD/$APPNAME"
EXEC="$APPDIR/$APPNAME"
ICON="$APPDIR/$ICONNAME"
sed -i -e "[email protected]^Icon=.*@[email protected]" \
-e "[email protected]^Exec.*@[email protected]" "$APPNAME.desktop"
* La Convention pour la freedesktop est d'avoir les icônes dans $ HOME/.icons,/usr/share/icons ou/usr/share/pixmaps. Sous ces répertoires se trouvent des sous-répertoires pour différentes tailles et types d'icônes. Lorsque vous utilisez l'un de ces répertoires pour stocker l'icône, seul le nom de l'icône (sans le répertoire) est répertorié dans le fichier de bureau; sinon, enregistrez le chemin d'accès complet au fichier.
L'exécutable, s'il se trouve dans le chemin, peut être répertorié sans nom de chemin (non sécurisé). Il est préférable de lister le chemin complet. Imaginez que le mauvais programme soit lancé car le chemin complet n'est pas spécifié.
Une autre possibilité est de copier le fichier de bureau sur le bureau de l'utilisateur ou sur /usr/share/applications, et de le modifier ici. Pour ce faire, lorsque le programme est sur un support en lecture seule.
Parce que rien de ce qui précède n'aboutit à une véritable installation, utilisez si possible les outils d'installation et de mise en package natifs de la plate-forme (rpm, dep, portage, etc.). Ces outils fournissent un cadre pour une installation complète, y compris les autorisations de fichiers appropriées (pensez selinux) et les menus de bureau. Ils fournissent également une désinstallation facile. Si le programme doit s'exécuter à partir du support amovible, envisagez d'utiliser l'installation du système pour installer simplement des liens symboliques, peut-être vers/opt/vendor/progname.