Definir variável de ambiente para o lançador de aplicativos unitários

8

Eu criei um .desktoparquivo para lançar nosso aplicativo. Nosso aplicativo requer que uma determinada variável de ambiente seja configurada corretamente. Onde posso configurar essa variável de ambiente em uma base por usuário (os candidatos usuais que conheço, gostam ~/.bashrce ~/.profilenão funcionam).

Talvez haja uma solução alternativa, para que eu possa configurá-lo na Exec=linha do .desktoparquivo antes de iniciar o aplicativo?

Mike L.
fonte

Respostas:

15

No próprio arquivo da área de trabalho, você pode executar o programa através de env:

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

Como alternativa, use um script wrapper (por exemplo /usr/bin/yourprogram.env):

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

No entanto, ambas são soluções ruins, pois o Unity não poderá rastrear corretamente o programa se ele for iniciado por meio de um wrapper.

Seria muito melhor ~/.profiletrabalhar - verifique se você está usando a sintaxe correta e tudo mais:

export VAR=value

ou

VAR=value
export VAR

Lembre-se também de que ~/.profilesó é lido quando você efetua login , portanto, você deve efetuar logout após alterá-lo.

grawity
fonte
Obrigado. Infelizmente, sua sugestão de uso env VAR=value /my/appnão funciona; a variável de ambiente VARnão está definida para valuequando /my/appinicia (tentei editando o desktoparquivo ~/.gnome/apps). Criar um script wrapper não é uma opção para mim, porque isso deve funcionar para nosso aplicativo distribuído para usuários finais e não sei onde o usuário final deseja que o script do wrapper esteja localizado (a criação do ativador não deve exigir direitos de administrador ).
Mike L.
(Huh? Eu não sabia que ~/.gnome/appsainda estava em uso; tem sido chamado ~/.local/share/applicationsnos últimos anos.) @Mike, se é o seu próprio aplicativo, por que não pode ser corrigido para determinar automaticamente a variável de ambiente apropriada? (Além disso, posso perguntar qual variável especificamente você está configurando?)
Grawity
Estou tentando definir uma variável que define a localização do ambiente de tempo de execução Java para nosso aplicativo.
Mike L.
1
talvez usar algumas das localizações padrão standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
Technosaurus
Eu instalei o .desktoparquivo usando xdg-desktop-menu install <my-desktop-file>. Parece que copiou para dois locais e eu sempre estava editando o errado ...
Mike L.