web-dev-qa-db-fra.com

Définir la variable dans le fichier .desktop

Est-il possible de définir la variable d'environnement dans un fichier .desktop? J'essaie d'exécuter une application (Eclipse) avec un style gtk personnalisé. Je souhaite donc obtenir le résultat suivant en exécutant un fichier .desktop:

GTK2_RC_FILES=gtkrc.custom /path/to/Eclipse

J'ai essayé de le mettre dans un script bash et de l'exécuter à partir du fichier .desktop, mais cela ne s'intègre pas bien avec le programme de lancement Unity.

74
dotintegral

Vous pouvez ajouter une variable d'environnement à une application en modifiant son fichier .desktop. Par exemple, pour exécuter "digiKam" avec la variable d'environnement APPMENU_DISPLAY_BOTH=1, recherchez le fichier digikam.desktop correspondant et ajoutez le paramètre de la variable, via la commande env, à l'entrée "Exec":

Exec=env APPMENU_DISPLAY_BOTH=1 digikam -caption "%c" %i

Dans ton cas:

Exec=env GTK2_RC_FILES=gtkrc.custom /path/to/Eclipse
108
jasmines

Une alternative pour modifier le fichier .desktop consiste à mettre un script d'encapsulation dans, par exemple. ~/bin.

$ cat ~/bin/Eclipse
#!/bin/sh
export GTK2_RC_FILES=gtkrc.custom
exec /usr/bin/Eclipse "$@"

Ainsi, la personnalisation ne sera pas écrasée lors de la mise à jour du package d'application.

Edit:

Vous pouvez voir pourquoi cela fonctionne en vérifiant le contenu de la variable PATH. Dans mon cas:

$ echo $PATH
/home/gunnar/bin:/home/gunnar/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

~/bin est le premier dossier de la liste et est donc examiné avant /usr/bin.

9