• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

relative Pfäde in Ordner/.desktop & XYZ.desktop?

mada

Hacker
Hallo zusammen,

mich plagt folgendes: Wie kann ich etwaige Pfäde in den .desktop-Dateien als relativ zu meinem Home angeben? Wenn ich z.B. ein eigenes Icon verwenden will, welches sich in einem Ordner Icons befindet, dann möchte ich dieses angeben als ~/Icons/icon.png, nicht als /home/mada/Icons/icon.png, usw.

Beispiel für die Datei eclipse.desktop auf dem Desktop, mit der ich Eclipse starte (welches ich nicht als rpm sondern als zip lokal in meinem Home installiert habe):
Code:
[Desktop Entry]
Comment=
Comment[en_US]=
Encoding=UTF-8
Exec=/home/mada/eclipse/eclipse
GenericName=
GenericName[en_US]=
Icon=/home/mada/eclipse/icon.xpm
MimeType=
Name=eclipse IDE
Name[en_US]=eclipse IDE
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=
Sowohl das Icon als auch der Exec-Pfad sollten relativ sein, damit ich das File und den Ordner z.B. einem Kollegen geben kann, und der das einfach ohne weiteres Zutun nutzen kann...(nach Anpassen des Besitzers halt, natürlich).

Geht das? $HOME hilft leider auch nicht...
 
OP
mada

mada

Hacker
Keiner da der nen Tipp hat? Oder hab ich mich so undeutlich ausgedrückt?
 

thommyus

Member
Hi

Ich benutze keine Desktopicons unter Icewm. Hast du es denn versucht mit ~/icons/icon.png? Dann weißt du auch ob es geht oder nicht.

Desweiteren stelle ich es mir jetzt nicht so unzumutbar vor, wenn dein Kollege einen Namen im Pfad ändern muss. Sofern er genau die selben Voraussetzungen hat.

LG
Thomas
 
mada schrieb:
$HOME hilft leider auch nicht...
Ja, so geht es wirklich nicht, weil Umgebungsvariablen innerhalb der *.desktop-Dateien nicht unterstützt werden.

Du kannst aber die Umgebungsvariablen nutzen, die bei der Verarbeitung von *.desktop-Dateien standardmäßig benutzt werden. Konkret wäre das die Umgebungsvariable XDG_DATA_DIRS.

Schau mal auf http://www.freedesktop.org/ nach. Der Server reagiert gerade nicht, aber sonst gibt es da die Spezifikationen.

Ein Verzeichnis in Deinem Homeverzeichnis ist übrigens immer im Suchpfad für Icons, nämlich $HOME/.icons (mit kleinem "i" und "." am Anfang).
 
OP
mada

mada

Hacker
Hab ich natürlich alles schon versucht, hilft aber nicht.

Und unzumutbar ist es natürlich nicht, das stimmt, aber unpraktisch :) Fände es anders viel schöner. Es betrifft ja auch Ordner auf einem externen Speichermedium (USB-Stick oder so), die ein eigenes Icon verwenden sollen. Das wird dann natürlich auch nicht dargestellt, weil der Pfad nicht stimmen kann, bzw. nicht vorhersehbar ist (/media/xyz...)
 
jengelh schrieb:
Na dann mach'n Bugreport bei kde.org auf.
Witzlos: Wenn die Spezifikation für .desktop-Dateien (die nicht KDE-spezifisch ist) keine Umgebungsvariablen zulässt, dann wäre es witzlos, wenn KDE sie doch zulassen würde (weil man dann überhaupt keine Spezifikation bräuchte).

Wenn Du einen Bug bzw. einen Featurewunsch bezüglich .desktop-Dateien hast, dann melde ihn bei freedesktop.org.
 
OP
mada

mada

Hacker
Sind relative Pfäde tatsächlich so anders, als dass man da eine Spezifikation ändern müsste? Und mit Umgebungsvariablen haben die doch auch noch nichts zu tun, oder?

Im Grunde erwarte ich ja nur, dass auf Icons im z.B. gleichen Ordner zugegriffen werden kann, ausgehend vom Ort der .desktop-Datei.

Ich werde da mal was schreiben, demnächst, wenn ich mit der 10.1 genug gespielt hab :)
 
mada schrieb:
Sind relative Pfäde tatsächlich so anders, als dass man da eine Spezifikation ändern müsste?
Ja.

Die jetzige Spezifikation besagt, dass die Icons in mehreren Suchpfaden gesucht werden, die in der Umgebungsvariable XDG_DATA_DIRS stehen.
mada schrieb:
Und mit Umgebungsvariablen haben die doch auch noch nichts zu tun, oder?
Doch, Du sagst doch selbst, dass Du es auch mit $HOME versucht hast, was eine Umgebungsvariable ist.
mada schrieb:
Im Grunde erwarte ich ja nur, dass auf Icons im z.B. gleichen Ordner zugegriffen werden kann, ausgehend vom Ort der .desktop-Datei.
Davon steht nichts in der Spezifilkation. Du kannst höchstens den Pfad, in dem die .desktop-Datei liegt, zur Umgebungsvariable XDG_DATA_DIRS hinzufügen - aber den absoluten, bitte (ein relativer Pfad wäre nicht relativ zur .desktop-Datei, sondern zum Verzeichnis, aus dem Du das jeweilige Programm startest).
 
Oben