Legen Sie die Umgebungsvariable für den Unity Application Launcher fest

8

Ich habe eine .desktopDatei erstellt, um unsere Anwendung zu starten. Unsere Anwendung erfordert, dass eine bestimmte Umgebungsvariable korrekt konfiguriert ist. Wo kann ich diese Umgebungsvariable auf Benutzerbasis konfigurieren (die üblichen Kandidaten, die ich kenne, mag ~/.bashrcund ~/.profiledie nicht funktionieren)?

Vielleicht gibt es eine Problemumgehung, damit ich sie in der Exec=Zeile der .desktopDatei konfigurieren kann, bevor ich die Anwendung starte?

Mike L.
quelle

Antworten:

15

In der Desktop-Datei selbst können Sie das Programm ausführen über env:

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

Verwenden Sie alternativ ein Wrapper-Skript (z. B. /usr/bin/yourprogram.env):

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

Beides sind jedoch schlechte Lösungen, da Unity das Programm nicht korrekt verfolgen kann, wenn es über einen Wrapper gestartet wird.

Es wäre viel besser, sich an die ~/.profileArbeit zu machen - stellen Sie sicher, dass Sie die richtige Syntax verwenden und all das:

export VAR=value

oder

VAR=value
export VAR

Denken Sie auch daran, dass dies ~/.profilenur beim Anmelden gelesen wird. Sie müssen sich daher nach dem Ändern abmelden.

user1686
quelle
Vielen Dank. Leider env VAR=value /my/appfunktioniert Ihr Vorschlag zur Verwendung nicht. Die Umgebungsvariable VARwird valuebeim /my/appStart nicht auf gesetzt (ich habe versucht, die desktopDatei in zu bearbeiten ~/.gnome/apps). Das Erstellen eines Wrapper-Skripts ist für mich keine Option, da dies für unsere an Endbenutzer verteilte Anwendung funktionieren sollte und ich nicht weiß, wo sich der Endbenutzer für das Wrapper-Skript befinden soll (für das Erstellen des Starters sind keine Administratorrechte erforderlich ).
Mike L.
(Huh? Ich wusste nicht, dass ~/.gnome/appses noch verwendet wird; es wurde in ~/.local/share/applicationsden letzten Jahren aufgerufen .) @Mike, wenn es Ihre eigene Anwendung ist, warum kann es nicht behoben werden, um automatisch die richtige Umgebungsvariable zu bestimmen? (Kann ich auch fragen, welche Variable Sie speziell einstellen?)
user1686
Ich versuche, eine Variable festzulegen, die den Speicherort der Java-Laufzeitumgebung für unsere Anwendung definiert.
Mike L.
1
Verwenden Sie möglicherweise einige der Standardspeicherorte Standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
Technosaurus
Ich habe die .desktopDatei mit installiert xdg-desktop-menu install <my-desktop-file>. Es sieht so aus, als hätte es an zwei Orte kopiert und ich habe immer den falschen bearbeitet ...
Mike L.