Définir la variable d'environnement pour le lanceur d'application Unity

8

J'ai créé un .desktopfichier pour lancer notre application. Notre application nécessite qu'une certaine variable d'environnement soit configurée correctement. Où puis-je configurer cette variable d'environnement sur une base par utilisateur (les candidats habituels que je connais, aiment ~/.bashrcet ~/.profilene travaillent pas).

Peut-être y a-t-il une solution de contournement pour que je puisse le configurer dans la Exec=ligne du .desktopfichier avant de lancer l'application?

Mike L.
la source

Réponses:

15

Dans le fichier de bureau lui-même, vous pouvez exécuter le programme via env:

Exec=/usr/bin/env VAR=value /usr/bin/yourprogram

Sinon, utilisez un script de wrapper (par exemple /usr/bin/yourprogram.env):

#!/bin/sh
VAR=value
export VAR
exec /usr/bin/yourprogram.real "$@"

Cependant, les deux solutions sont médiocres, car Unity ne sera pas en mesure de suivre correctement le programme s'il est démarré via un wrapper.

Il serait bien mieux de commencer à ~/.profiletravailler - assurez-vous d’utiliser la syntaxe correcte et tout le reste :

export VAR=value

ou

VAR=value
export VAR

Rappelez-vous également qu’il ~/.profilen’est lu que lorsque vous vous connectez . Vous devez donc vous déconnecter après le changement.

Grawity
la source
Merci. Malheureusement, votre suggestion d'utiliser env VAR=value /my/appne fonctionne pas; la variable d'environnement VARn'est pas définie sur valuelors du /my/applancement (j'ai essayé en modifiant le desktopfichier ~/.gnome/apps). Créer un script wrapper n'est pas une option pour moi, car cela devrait fonctionner pour notre application distribuée aux utilisateurs finaux et je ne sais pas où l'utilisateur final voudrait que le script wrapper soit situé (la création du lanceur ne doit pas nécessiter de droits d'administrateur ).
Mike L.
(Hein? Je ne savais pas qu'elle ~/.gnome/appsétait encore utilisée; on l'appelle ~/.local/share/applicationsdepuis quelques années.) @ Mike, s'il s'agit de votre propre application, pourquoi ne peut-elle pas être corrigée pour déterminer automatiquement la bonne variable d'environnement? (Aussi, puis-je demander quelle variable spécifiez-vous?)
grawity
J'essaie de définir une variable définissant l'emplacement de l'environnement d'exécution Java pour notre application.
Mike L.
1
utilisez peut-être certains des emplacements standard standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
technosaurus
J'ai installé le .desktopfichier avec xdg-desktop-menu install <my-desktop-file>. On dirait qu'il l'a copié à deux endroits et j'ai toujours édité le mauvais ...
Mike L.