.desktop: come specificare il percorso dell'icona [duplicato]

17

Ho dato un'occhiata ai file .desktop sul mio sistema Ubuntu 12.04, e molti di loro non hanno una specifica di percorso completa per il loro file di icone. È piuttosto qualcosa come:

Icon=anjuta

o

Icon=vlc

o

Icon=application-x-clementine

Esiste un percorso comune in cui è possibile memorizzare le icone affinché funzioni? In caso contrario, come funziona? Se provo a fare la stessa cosa con le mie icone personali, devo specificare il percorso completo.

per es.

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

funziona bene, ma

Icon=my-icon.png

fallirà.

Qualsiasi tipo di aiuto è benvenuto!

    
posta user3430409 17.03.2014 - 20:55

3 risposte

12

Sì, la ricerca è piuttosto complicata. Ecco le specifiche dell'icona di freedesktop sui layout di directory:

  

Icone e temi sono cercati in una serie di directory. Per impostazione predefinita,   le app dovrebbero apparire in $ HOME / .icon (per compatibilità con le versioni precedenti), in   $ XDG_DATA_DIRS / icone e in / usr / share / pixmaps (in quest'ordine) .   Le applicazioni possono inoltre aggiungere le proprie directory di icone a questo elenco,   e gli utenti possono estendere o modificare l'elenco (in applicazione / desktop   modi specifici). In ciascuna di queste directory i temi sono memorizzati come   sottodirectory. Un tema può essere distribuito su diverse directory di base   avendo sottodirectory con lo stesso nome. In questo modo gli utenti possono estendere   e sovrascrivi i temi di sistema.

     

Per avere un posto dove installare applicazioni di terze parti   le icone dovrebbero sempre esistere un tema chiamato "hicolor" 1 . I dati   per il tema hicolor è disponibile per il download all'indirizzo:    link . Le implementazioni sono   richiesto di cercare nel tema "hicolor" se non è stata trovata un'icona   il tema attuale.

     

Ogni tema è memorizzato come sottodirectory delle directory di base. Il   il nome interno del tema è il nome della sottodirectory, sebbene   il nome visibile all'utente come specificato dal tema potrebbe essere diverso.   Pertanto, i nomi dei temi sono sensibili al maiuscolo / minuscolo e sono limitati a ASCII   personaggi. I nomi dei temi possono anche non contenere virgola o spazio.

     

In almeno una delle directory dei temi deve esserci un file chiamato   index.theme che descrive il tema. Il primo indice trovato   durante la ricerca viene utilizzata la directory di base in ordine. Questa vita   descrive gli attributi generali del tema.

     

Nella directory del tema sono anche un insieme di sottodirectory contenenti   file di immagine. Ogni directory contiene icone progettate per un certo   dimensione nominale dell'icona, come descritto nel file index.theme. Il   le sottodirectory possono avere diversi livelli di profondità, ad es. il   sottodirectory "48x48 / apps" nel tema "hicolor" sarebbe finito a   $ Basedir / hicolor / 48x48 / apps.

     

I file immagine devono essere di uno dei tipi: PNG, XPM o SVG e il   l'estensione deve essere ".png", ".xpm" o ".svg" (lettere minuscole). Il supporto   per i file SVG è facoltativo. Implementazioni che non supportano gli SVG   dovrebbe semplicemente ignorare qualsiasi file ".svg". Oltre a questo ci potrebbe essere   un file aggiuntivo con ulteriori icone-dati per ogni file. Dovrebbe avere   lo stesso nome base del file immagine, con estensione ".icon". per esempio.   se il file dell'icona è chiamato "mime_source_c.png" il file corrispondente   sarebbe denominato "mime_source_c.icon".

Le specifiche complete sono molto più esaustive di questo, ma il punto cruciale è che ci sono directory fisse in cui è possibile inserire le icone e il desktop le troverà. Quale di quelle che meglio si applica a te dipende dal tuo problema e dalla tua pazienza:)

    
risposta data Oli 17.03.2014 - 21:18
4

Se metti icone in /usr/share/icons/ (per l'intero sistema) o nella tua casa ~/.icons , puoi usare solo il nome del file dell'icona senza l'estensione nel file .desktop. Per es.

Icon=vlc

In caso contrario, è necessario utilizzare il percorso assoluto per l'icona nel file .desktop. Per es.

Icon=/usr/local/share/my-icon.png
    
risposta data Radu Rădeanu 17.03.2014 - 21:12
4

Ho esperienza con solo emblemi, non con icone, ma dovrebbe funzionare:

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

inserisci l'icona in quella directory, supponiamo che sia myicon.png

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

Aggiungi il file di descrizione:

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

con contenuto:

[Icon Data]

DisplayName=myicon

e ora la tua riga Icon=myicon dovrebbe funzionare. Funziona con gli emblemi se li metti in una sottodirectory "emblemi":

Grazie a @Oli ora so perché funziona :-)

    
risposta data Rmano 17.03.2014 - 21:39

Leggi altre domande sui tag