it-swarm.com.de

.desktop-Dateien: So legen Sie den Symbolpfad fest

Ich habe mir die .desktop-Dateien auf meinem 12.04 Ubuntu-System angesehen, und viele von ihnen haben keine vollständige Pfadangabe für ihre Symboldatei. Es ist eher so etwas wie:

Icon=anjuta

oder

Icon=vlc

oder

Icon=application-x-clementine

Gibt es einen gemeinsamen Pfad, in dem Symbole gespeichert werden können, damit dies funktioniert? Wenn nicht, wie funktioniert das? Wenn ich versuche, dasselbe mit meinen eigenen Symbolen zu tun, muss ich den vollständigen Pfad angeben.

z.B.

Icon=/usr/local/share/my-icon.png

funktioniert gut, aber

Icon=my-icon.png

wird versagen.

Jede Art von Hilfe ist willkommen!

18
user3430409

Ja, die Suche ist ziemlich kompliziert. Hier sind die Freedesktop-Symbolspezifikationen für Verzeichnislayouts:

In einer Reihe von Verzeichnissen wird nach Symbolen und Themen gesucht. Standardmäßig sollten Apps in $ HOME/.icons (aus Gründen der Abwärtskompatibilität), in $ XDG_DATA_DIRS/icons und in/usr/share/pixmaps (in dieser Reihenfolge) nachsehen . Anwendungen können dieser Liste ferner ihre eigenen Symbolverzeichnisse hinzufügen, und Benutzer können die Liste erweitern oder ändern (auf anwendungs-/desktopspezifische Weise). In jedem dieser Verzeichnisse werden Themen als Unterverzeichnisse gespeichert. Ein Thema kann über mehrere Basisverzeichnisse verteilt werden, indem Unterverzeichnisse mit demselben Namen vorhanden sind. Auf diese Weise können Benutzer Systemthemen erweitern und überschreiben.

Damit Anwendungen von Drittanbietern ihre Symbole installieren können, sollte immer ein Thema mit dem Namen "hicolor" vorhanden sein 1 . Die Daten für das Hicolor-Thema können unter folgender Adresse heruntergeladen werden: http://www.freedesktop.org/software/icon-theme/ . Implementierungen sind erforderlich, um im Thema "Hicolor" zu suchen, wenn im aktuellen Thema kein Symbol gefunden wurde.

Jedes Thema wird als Unterverzeichnisse der Basisverzeichnisse gespeichert. Der interne Name des Themas ist der Name des Unterverzeichnisses, obwohl der vom Thema angegebene, für den Benutzer sichtbare Name unterschiedlich sein kann. Daher wird bei Themennamen zwischen Groß- und Kleinschreibung unterschieden und es sind nur ASCII Zeichen zulässig. Themennamen dürfen auch kein Komma oder Leerzeichen enthalten.

In mindestens einem der Themenverzeichnisse muss sich eine Datei mit dem Namen index.theme befinden, die das Thema beschreibt. Das erste index.theme, das beim Durchsuchen der Basisverzeichnisse in der angegebenen Reihenfolge gefunden wurde, wird verwendet. Diese Datei beschreibt die allgemeinen Attribute des Themas.

Im Themenverzeichnis befinden sich auch eine Reihe von Unterverzeichnissen, die Bilddateien enthalten. Jedes Verzeichnis enthält Symbole für eine bestimmte nominelle Symbolgröße, wie in der Datei index.theme beschrieben. Die Unterverzeichnisse dürfen mehrere Ebenen tief sein, z. Das Unterverzeichnis "48x48/apps" im Thema "hicolor" würde zu "$ basedir/hicolor/48x48/apps" führen.

Bei den Bilddateien muss es sich um PNG-, XPM- oder SVG-Dateien handeln. Die Erweiterung muss ".png", ".xpm" oder ".svg" (Kleinbuchstaben) lauten. Die Unterstützung für SVG-Dateien ist optional. Implementierungen, die keine SVGs unterstützen, sollten nur ".svg" -Dateien ignorieren. Zusätzlich kann es eine zusätzliche Datei mit zusätzlichen Symboldaten für jede Datei geben. Es sollte den gleichen Basisnamen wie die Bilddatei haben, mit der Erweiterung ".icon". z.B. Wenn die Symboldatei "mime_source_c.png" heißt, wird die entsprechende Datei "mime_source_c.icon" genannt.

Die vollständigen Spezifikationen sind viel umfangreicher, aber der springende Punkt ist: Es gibt festgelegte Verzeichnisse, in die Sie einfach Symbole einfügen können, und der Desktop wird sie finden. Welche davon für Sie am besten geeignet ist, hängt von Ihrem Problem und Ihrer Geduld ab :)

15
Oli

Ich habe Erfahrung nur mit Emblemen, nicht mit Symbolen, aber das sollte funktionieren:

mkdir -p $HOME/.icons/hicolor/48x48/

lege das Icon in dieses Verzeichnis, nimm an, es ist myicon.png

cp  myicons.png $HOME/.icons/hicolor/48x48/

Fügen Sie die Beschreibungsdatei hinzu:

gedit $HOME/.icons/hicolor/48x48/myicon.icon

mit Inhalt:

[Icon Data]

DisplayName=myicon

und jetzt sollte deine Icon=myicon Zeile funktionieren. Es funktioniert mit Emblemen, wenn Sie sie in einem Unterverzeichnis "Embleme" ablegen:

personalized emblem

Dank @Oli weiß ich jetzt warum es funktioniert :-)

5
Rmano

Wenn Sie Symbole in /usr/share/icons/ (für das gesamte System) oder in Ihr Zuhause ~/.icons einfügen, können Sie nur den Namen der Symboldatei ohne die Erweiterung in der .desktop-Datei verwenden. Z.B.

Icon=vlc

Wenn nicht, müssen Sie den absoluten Pfad für das Symbol in der .desktop-Datei verwenden. Z.B.

Icon=/usr/local/share/my-icon.png
4
Radu Rădeanu