Come unire due set di icone?


14

Voglio unire il set di icone standard Ubuntu Mono e il set di icone Faenza. Vorrei mantenere le icone standard di Ubuntu nel pannello (comprese le icone per artisti del calibro di Dropbox, trasferimenti di file ecc.) E sostituire tutte le altre icone dell'applicazione con le versioni di Faenza.

Come lo farei?

Risposte:


3

Modifica questo file di seguito con il tuo editor di testo preferito

/usr/share/icons/ubuntu-mono-(which mono set you want)/index.theme

e metti Faenza all'inizio della linea degli ereditari.


2
Dovresti evitare di modificare i file di sistema. Un aggiornamento a Ubuntu-Mono ripristinerà la tua modifica.
idbrii,

12

Penso che il modo migliore per unire i set di icone sia quello di creare quello che chiamo un set di icone leggero. Questo set di icone vive nella tua home directory in modo che non venga bloccato dagli aggiornamenti di sistema, ma si collega ai set di icone di sistema, quindi verrà aggiornato insieme a loro. Questi temi non saranno disponibili per altri utenti sul tuo sistema.

Set di icone leggere

Gestore di temi di Ubuntu cercherà in ~/.iconse /usr/share/iconsper le icone set. Tutto ciò in ~/.iconssostituzioni /usr/share/icons.Così si può copiare un set di icone dal dir sistema alla vostra directory home di personalizzare l'icona e si includere solo le parti che si desidera cambiare!

In generale, penso che sia meglio creare i propri set di icone che utilizzano quelli di sistema. Puoi farlo creando un set di icone, un file index.theme e aggiungendo alcune icone. Tuttavia, quando si combinano diversi set di icone, è necessario sovrascrivere il loro Inheritsattributo in modo da poter impostare il proprio ordine di precedenza.

Creazione di un'icona impostata per unire temi

Creiamo un set di icone super-mono:

# Create a new icon set
mkdir -p ~/.icons/super-mono

# Copy an existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza-Darkest/index.theme      ~/.icons/super-mono/.
sed -ie "s/Name=Faenza-Darkest/Name=super-mono/"    ~/.icons/super-mono/index.theme
sed -ie "s/Comment=.*$/Comment=Created with by me/" ~/.icons/super-mono/index.theme
sed -ie "s/Inherits=/Inherits=ubuntu-mono-dark,/"   ~/.icons/super-mono/index.theme

Ora abbiamo un nuovo set di icone in Appearance che è esattamente come Faenza-Darkest.

Per unire i nostri due temi, cambiamo il tema super-mono per ereditare da Ubuntu-mono-dark e quindi da Faenza.

sed -ie "s/Inherits=.*$/Inherits=ubuntu-mono-dark,Faenza/" ~/.icons/super-mono/index.theme

Questo dovrebbe essere sufficiente per richzilla, basta selezionare super-mono in Aspetto.

Aggiunta di icone personalizzate

Possiamo anche aggiungere singole icone a questo set di icone:

ln -s /usr/share/icons/Faenza-Darkest/actions/22/gtk-paste.png ~/.icons/super-mono/actions/22/.

E ora il nostro tema super-mono combina ubuntu-mono-dark e Faenza, tranne che usa un'icona di Faenza-Darkest. Vedi le sezioni successive per usare più di poche icone.

È importante vedere che ho copiato l'indice.theme di Faenza-Darkest e poi ho usato le icone di Faenza-Darkest. Il file index.theme indica dove potrebbero trovarsi le icone. Se vuoi estrarre singole icone da diversi set di icone, dovrai unire i loro file index.theme. Puoi guardare i file e vedrai un campo chiamato Directory che elenca tutte le cartelle che contengono icone. Quindi vedrai altri campi che descrivono queste cartelle. Se aggiungi un'icona che non è descritta da questi campi, quell'icona verrà ignorata. Puoi trovare maggiori informazioni nelle specifiche index.theme .

Avanzato: combinazione selettiva di tre set di icone

Adoro anche le icone di Ubuntu-Mono. Adoro le icone delle app di Faenza, ma non mi piacciono le icone mono di Faenza (gli indicatori e i pulsanti). Mi piacciono anche le icone elementari. Quindi voglio combinare questi tre set di icone. Per quanto ne so, il modo migliore per farlo è isolare le icone che ti piacciono.

  1. Usa ubuntu-mono-dark
  2. Usa le icone delle app di Faenza
  3. Altrimenti usa le icone elementari

Per fare questo, dobbiamo dire a Ubuntu-mono-dark di non ereditare da nulla (quindi possiamo anche usare Faenza ed elementari).

# First, ubuntu-mono-dark
# Create a shadow of the system icon set
mkdir -p ~/.icons/ubuntu-mono-dark

# Copy an existing icon config and modify it for our shadow icon set
cp /usr/share/icons/ubuntu-mono-dark/index.theme   ~/.icons/ubuntu-mono-dark/.
sed -ie "s/Comment=.*$/Comment=A shadow to prevent inherits/" ~/.icons/ubuntu-mono-dark/index.theme
sed -ie "s/Inherits=.*$/Inherits=/"                ~/.icons/ubuntu-mono-dark/index.theme

Noterai che il set di icone ubuntu-mono-dark è ora rotto. Mancano le icone fornite da Humanity-Dark e altri set di icone da cui eredita. Questa modifica interesserà solo il tuo utente.

Ora possiamo creare un nuovo set di icone che utilizza le icone delle app di Faenza.

# Create a new icon set
mkdir -p ~/.icons/Faenza-apps

# Copy the existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza/index.theme             ~/.icons/Faenza-apps/.
sed -ie "s/Name=Faenza/Name=Faenza-apps/"          ~/.icons/Faenza-apps/index.theme
sed -ie "s/Comment=.*$/Comment=Just Faenza app icons/" ~/.icons/Faenza-apps/index.theme
sed -ie "s/Inherits=.*$/Inherits=/"                ~/.icons/Faenza-apps/index.theme

# Use Faenza's app icons
ln -s /usr/share/icons/Faenza/apps/ ~/.icons/Faenza-apps/.

Anche questo set di icone delle app Faenza è rotto. Ha solo icone per le app. Tutte le altre icone mancano perché abbiamo rimosso gli Ereditari.

Ora creiamo il set di icone che useremo. Il nostro set di icone non conterrà icone, si collega semplicemente agli altri set di icone.

# Create a new icon set
mkdir -p ~/.icons/merge-mono-dark

# Copy an existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza/index.theme                 ~/.icons/merge-mono-dark/.
sed -ie "s/Name=Faenza/Name=merge-mono-dark/"          ~/.icons/merge-mono-dark/index.theme
sed -ie "s/Comment=.*$/Comment=Created with by me/"    ~/.icons/merge-mono-dark/index.theme
sed -ie "s/Inherits=.*$/Inherits=ubuntu-mono-dark,Faenza-apps,elementary-mono-dark/" ~/.icons/merge-mono-dark/index.theme

Ora dovremmo essere in grado di selezionare merge-mono-dark in Appearance e avremo un bellissimo nuovo set di icone! (Nota: non dovremmo aver bisogno di unire i file index.theme perché non stiamo aggiungendo icone da diversi set di icone per unire-mono-dark. Invece, stiamo usando Inherits per unire automaticamente i set di icone.)


Spiegazione di alcuni comandi

Uso molti comandi del Terminale per semplificare questa risposta, ma ecco una descrizione di ciò che fanno.

ln -s /usr/share/icons/Faenza-Darkest/actions/22/gtk-paste.png ~/.icons/Faenza-Alan/actions/22/.

Questo crea un puntatore nel tuo set di icone sull'icona gtk-paste del set di icone di sistema. In questo modo non viene utilizzato spazio aggiuntivo sul disco rigido e il set di icone viene aggiornato insieme al set di icone del sistema. Se non lo desideri, sostituiscilo ln -scon cp -r.

sed -ie "s/dark/light/" ~/file

Significa sostituire tutto darkcon lightin ~ / file.

sed -ie "s/Comment=.*$/Comment=Created with by me/" ~/.icons/super-mono/index.theme

Il .*$mezzo per abbinare qualsiasi testo (. *) Alla fine della riga ($).

sed -ie "s/Inherits=/Inherits=ubuntu-mono-dark,/"   ~/.icons/super-mono/index.theme

Qui stiamo inserendo ubuntu-mono-dark davanti all'elenco Erediti perché lo stiamo cercando Inherits=e sostituendolo conInherits=ubuntu-mono-dark,

Ovunque io utilizzi sed, puoi modificare il file e applicare le modifiche manualmente.


1
<sarcasm> Non sono sicuro che questo post sia abbastanza dettagliato pydave </sarcasm> in tutta serietà, ottima risposta. In realtà ho avuto un problema simile con l'icona di Clementine che risolve questo problema.
zookalicious
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.