Frage .desktop-Dateien: wie man den Icon-Pfad spezifiziert [duplizieren]


Diese Frage hat hier bereits eine Antwort:

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 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 geht das? Wenn ich versuche, dasselbe mit meinen eigenen Icons zu machen, 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!


17
2018-03-17 19:55


Ursprung




Antworten:


Ja, das Nachschlagen ist ziemlich kompliziert. Hier sind die Freedesktop Icon Spezifikationen auf Verzeichnislayouts:

In einer Reihe von Verzeichnissen werden Icons und Themes gesucht. Standardmäßig,   apps sollten in $ HOME / .icons (aus Gründen der Abwärtskompatibilität) in   $ XDG_DATA_DIRS / Symbole und in / usr / share / pixmaps (in dieser Reihenfolge).   Anwendungen können außerdem ihre eigenen Icon-Verzeichnisse zu dieser Liste hinzufügen,   und Benutzer können die Liste erweitern oder ändern (in der Anwendung / Desktop   spezifische Wege). In jedem dieser Verzeichnisse werden Themen als gespeichert   Unterverzeichnisse. Ein Thema kann auf mehrere Basisverzeichnisse verteilt werden   indem Sie Unterverzeichnisse mit demselben Namen haben. Auf diese Weise können Benutzer erweitern   und überschreiben Systemthemen.

Um Platz für Anwendungen von Drittanbietern zu haben, um ihre zu installieren   Symbole dort sollte immer ein Thema namens "hicolor" existieren 1. Die Daten   für das hicolor Theme steht zum Download bereit unter:    http://www.freedesktop.org/software/icon-theme/. Implementierungen sind   erforderlich, um im "hicolor" -Thema zu suchen, wenn ein Symbol nicht gefunden wurde   das aktuelle Thema.

Jedes Thema wird als Unterverzeichnis der Basisverzeichnisse gespeichert. Das   Der interne Name des Themas ist jedoch der Name des Unterverzeichnisses   Der für den Benutzer sichtbare Name, wie durch das Thema angegeben, kann unterschiedlich sein.   Daher sind Themennamen Groß- und Kleinschreibung und sind auf ASCII beschränkt   Figuren. Theme-Namen dürfen auch kein Komma oder Leerzeichen enthalten.

In mindestens einem der Themenverzeichnisse muss eine Datei namens   index.theme, das das Thema beschreibt. Das erste index.theme gefunden   Während der Suche werden die Basisverzeichnisse in der Reihenfolge verwendet. Diese Datei   beschreibt die allgemeinen Attribute des Themas.

Im Themenverzeichnis befinden sich auch eine Reihe von Unterverzeichnissen   Bilddateien. Jedes Verzeichnis enthält Symbole für bestimmte   nominale Symbolgröße, wie in der Datei index.theme beschrieben. Das   Unterverzeichnisse können mehrere Ebenen tief sein, z. das   Unterverzeichnis "48x48 / apps" im Thema "hicolor" würde enden bei   $ basedir / hicolor / 48x48 / apps.

Die Bilddateien müssen einer der folgenden Typen sein: PNG, XPM oder SVG und der   Die Erweiterung muss ".png", ".xpm" oder ".svg" sein (Kleinschreibung). Die Unterstützung   für SVG-Dateien ist optional. Implementierungen, die SVGs nicht unterstützen   sollte einfach ".svg" -Dateien ignorieren. Darüber hinaus kann es sein   eine zusätzliche Datei mit zusätzlichen Symboldaten für jede Datei. Es sollte haben   derselbe Basisname wie die Bilddatei mit der Erweiterung ".icon". z.B.   Wenn die Icon-Datei "mime_source_c.png" heißt, die entsprechende Datei   würde "mime_source_c.icon" heißen.

Die vollständigen Spezifikationen sind viel ausschöpfender als das, aber der Kernpunkt ist: Es gibt festgelegte Verzeichnisse, in die man einfach Icons einlegen kann, und der Desktop findet sie. Welche davon am besten auf dich zutrifft, hängt von deinem Problem und deiner Geduld ab :)


12
2018-03-17 20:18



Absolut super Antwort danke für dieses Zitat. - Noitidart


Wenn Sie Symbole einfügen /usr/share/icons/ (für systemweit) oder in Ihrem Zuhause ~/.icons, dann können Sie nur den Symboldateinamen 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
2018-03-17 20:12





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

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

Setzen Sie das Symbol in dieses Verzeichnis, nehmen wir 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 dein Icon=myicon Linie sollte funktionieren. Es funktioniert mit Emblemen, wenn Sie sie in ein "Embleme" -Unterverzeichnis legen:

personalized emblem

Dank @Oli jetzt weiß ich Warum Es klappt :-)


4
2018-03-17 20:39



Nein, ich wusste nichts über Embleme, super Antwort. Ich habe tatsächlich einen angepassten PNG erstellt, als es darauf einzustellen. Das ist ein toller Mann, danke. Ist es nur Ubuntu, das Emblem unterstützt? oder alle Linux-Builds? - Noitidart
@Noitidart: Ich denke, es ist im Grunde eine Datei-Manager-Sache. Sie arbeiten zumindest in nautilus und in thunar (so in Ubuntu, Ubuntu Gnome und XUbuntu; und in anderen Distributionen, die sie verwenden). Nie mit der K-Seite prüfen. - Rmano