Comment fusionner deux jeux d'icônes?

14

Je veux fusionner le jeu d'icônes Ubuntu Mono standard et le jeu d'icônes Faenza. Je voudrais conserver les icônes standard d'Ubuntu dans le panneau (y compris les icônes pour Dropbox, les transferts de fichiers, etc.) et remplacer toutes les autres icônes d'application par les versions de Faenza.

Comment pourrais-je m'y prendre?

richzilla
la source

Réponses:

3

Modifiez ce fichier ci-dessous avec votre éditeur de texte préféré

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

et mettre Faenza au début de la ligne hérite.

Vallery
la source
2
Vous devez éviter de modifier les fichiers système. Une mise à jour d'ubuntu-mono annulera votre modification.
idbrii
12

Je pense que la meilleure façon de fusionner des jeux d'icônes est de créer ce que j'appelle un jeu d'icônes léger. Ce jeu d'icônes se trouve dans votre répertoire personnel, il ne sera donc pas encombré par les mises à jour du système, mais il sera lié aux jeux d'icônes du système, il sera donc mis à jour avec eux. Ces thèmes ne seront pas disponibles pour les autres utilisateurs de votre système.

Jeux d'icônes légers

Le gestionnaire de thèmes d'Ubuntu cherchera dans ~/.iconset /usr/share/iconspour les jeux d'icônes. N'importe quoi dans les ~/.iconsremplacements /usr/share/icons.Vous pouvez donc copier un jeu d'icônes du répertoire système vers votre répertoire personnel pour personnaliser l'icône et n'inclure que les parties que vous souhaitez modifier!

En général, je pense qu'il est préférable de créer vos propres jeux d'icônes qui utilisent ceux du système. Vous pouvez le faire en créant un jeu d'icônes, un fichier index.theme et en ajoutant quelques icônes. Cependant, lorsque vous combinez différents jeux d'icônes, vous devrez remplacer leur Inheritsattribut afin de pouvoir définir votre propre ordre de priorité.

Création d'un jeu d'icônes pour fusionner des thèmes

Créons un jeu d'icônes 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

Maintenant, nous avons un nouvel ensemble d'icônes dans Apparence qui est exactement comme Faenza-Darkest.

Pour fusionner nos deux thèmes, nous changeons le thème super-mono pour hériter de ubuntu-mono-dark puis Faenza.

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

Cela devrait suffire pour richzilla, il suffit de sélectionner super-mono dans Apparence.

Ajout d'icônes personnalisées

Nous pouvons également ajouter des icônes individuelles à ce jeu d'icônes:

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

Et maintenant, notre thème super-mono combine ubuntu-mono-dark et Faenza, sauf qu'il utilise une icône de Faenza-Darkest. Consultez les sections suivantes pour utiliser plus que quelques icônes.

Il est important de voir que j'ai copié l'index.theme de Faenza-Darkest puis utilisé des icônes de Faenza-Darkest. Le fichier index.theme indique où les icônes peuvent se trouver. Si vous souhaitez extraire des icônes individuelles de différents jeux d'icônes, vous devrez fusionner leurs fichiers index.theme. Vous pouvez regarder les fichiers et vous verrez un champ appelé répertoires qui répertorie tous les dossiers contenant des icônes. Ensuite, vous verrez d'autres champs qui décrivent ces dossiers. Si vous ajoutez une icône qui n'est pas décrite par ces champs, cette icône sera ignorée. Vous pouvez trouver plus d'informations dans la spécification index.theme .

Avancé: combinaison sélective de trois jeux d'icônes

J'adore également les icônes ubuntu-mono. J'adore les icônes d'application de Faenza, mais je n'aime pas les icônes mono de Faenza (les indicateurs et les boutons). J'aime aussi les icônes de l'élémentaire. Je veux donc combiner ces trois jeux d'icônes. Pour autant que je sache, la meilleure façon de le faire est d'isoler les icônes que vous aimez.

  1. Utilisez ubuntu-mono-dark
  2. Utilisez les icônes d'application de Faenza
  3. Sinon, utilisez les icônes de l'élémentaire

Pour ce faire, nous devons dire à ubuntu-mono-dark de ne pas hériter de quoi que ce soit (afin que nous puissions également utiliser Faenza et élémentaire).

# 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

Vous remarquerez que le jeu d'icônes ubuntu-mono-dark est maintenant cassé. Il manquera des icônes fournies par Humanity-Dark et d'autres jeux d'icônes dont il hérite. Cette modification n'affectera que votre utilisateur.

Nous pouvons maintenant créer un nouvel ensemble d'icônes qui utilise les icônes d'application de 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/.

Ce jeu d'icônes Faenza-apps est également cassé. Il n'a que des icônes pour les applications. Toutes les autres icônes sont manquantes car nous avons supprimé les héritages.

Maintenant, nous créons le jeu d'icônes que nous utiliserons. Notre jeu d'icônes ne contiendra aucune icône, il connecte simplement nos autres jeux d'icônes.

# 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

Maintenant, nous devrions pouvoir sélectionner fusion-mono-sombre dans Apparence et nous aurons un magnifique nouveau jeu d'icônes! (Remarque: nous ne devrions pas avoir besoin de fusionner les fichiers index.theme car nous n'ajoutons pas d'icônes de différents jeux d'icônes à merge-mono-dark. Au lieu de cela, nous utilisons Inherits pour fusionner automatiquement les jeux d'icônes.)


Explication de certaines commandes

J'utilise beaucoup de commandes Terminal pour simplifier cette réponse, mais voici une description de ce qu'elles font.

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

Cela crée un pointeur dans votre jeu d'icônes vers l'icône gtk-paste du jeu d'icônes système. De cette façon, aucun espace disque dur supplémentaire n'est utilisé et votre jeu d'icônes est mis à jour avec le jeu d'icônes du système. Si vous ne le souhaitez pas, remplacez-le ln -spar cp -r.

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

Moyens de tout remplacer darkpar lightin ~ / file.

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

Le .*$moyen de faire correspondre n'importe quel texte (. *) À la fin de la ligne ($).

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

Ici, nous insérons ubuntu-mono-dark devant la liste Inherits parce que nous le recherchons Inherits=et le remplaçons parInherits=ubuntu-mono-dark,

Partout où j'utilise sed, vous pouvez modifier le fichier et appliquer des modifications manuellement à la place.

idbrii
la source
1
<sarcasm> Je ne suis pas sûr que ce post soit suffisamment détaillé pydave </sarcasm> en toute sincérité, excellente réponse. En fait, j'ai eu un problème similaire avec l'icône des Clémentines que cela résout.
zookalicious