web-dev-qa-db-fra.com

Comment fusionner deux jeux d'icônes?

Je souhaite fusionner le jeu d'icônes standard Ubuntu Mono et le jeu d'icônes Faenza. Je souhaite conserver les icônes standard d'Ubuntu dans le panneau (y compris les icônes pour les goûts de 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?

14
richzilla

Éditez 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éritée.

2
Vallery

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 trouvant dans votre répertoire personnel, il ne sera donc pas encombré par les mises à jour du système, mais il est lié aux jeux d'icônes du système. Il sera donc mis à jour en même temps. 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 recherchera dans ~/.icons et /usr/share/icons des jeux d'icônes. Tout ce qui se trouve dans ~/.icons annule /usr/share/icons. Ainsi, vous pouvez copier un jeu d'icônes du répertoire système vers votre répertoire personnel pour personnaliser l'icône et vous n'incluez 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 des icônes. Toutefois, lorsque vous combinez différents jeux d'icônes, vous devez remplacer leur attribut Inherits 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

Nous avons maintenant une nouvelle icône dans Apparence qui ressemble exactement à Faenza-Darkest.

Pour fusionner nos deux thèmes, nous changeons le thème super-mono pour hériter d'ubuntu-mono-dark puis de 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 à cet ensemble 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. Voir 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 et ensuite utilisé les icônes de Faenza-Darkest. Le fichier index.theme indique où peuvent se trouver les icônes. Si vous souhaitez extraire des icônes individuelles de différents jeux d’icônes, vous devez fusionner leurs fichiers index.theme. Vous pouvez consulter les fichiers et vous verrez un champ appelé Répertoires répertoriant tous les dossiers contenant des icônes. Ensuite, vous verrez d'autres champs décrivant 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 le index.theme spec .

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

J'aime aussi les icônes Ubuntu-mono. J'aime 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. Donc, je veux combiner ces trois jeux d'icônes. 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. Utiliser 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 rien hériter (pour pouvoir é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 endommagé. Il manquera les icônes fournies par Humanity-Dark et les autres jeux d'icônes dont il hérite. Cette modification n'affectera que votre utilisateur.

Nous pouvons maintenant créer un nouveau jeu 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/.

Cet ensemble d'icônes Faenza-apps est également endommagé. Il n'a que des icônes pour les applications. Toutes les autres icônes sont manquantes car nous avons supprimé les Inherits.

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

Nous devrions maintenant être en mesure de sélectionner la fusion-mono-sombre dans Apparence et nous aurons un magnifique nouvel ensemble d'icônes! (Remarque: nous ne devrions pas avoir besoin de fusionner les fichiers index.theme car nous n’ajoutons pas d’icônes provenant de différents jeux d’icônes pour fusionner en mono-obscur. Nous utilisons à la place 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 sur l'icône gtk-paste du jeu d'icônes système. Ainsi, aucun espace disque 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 ln -s par cp -r.

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

Signifie de remplacer tout dark par light dans ~/fichier.

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

Le .*$ signifie 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 car nous cherchons Inherits= et nous le remplaçons par Inherits=ubuntu-mono-dark,

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

12
idbrii