Wie füge ich zwei Symbolsätze zusammen?

14

Ich möchte das Standard-Ubuntu-Mono-Icon-Set und das Faenza-Icon-Set zusammenführen. Ich möchte die Standard-Ubuntu-Symbole im Panel behalten (einschließlich Symbole für Dropbox, Dateiübertragungen usw.) und alle anderen Anwendungssymbole durch die Faenza-Versionen ersetzen.

Wie würde ich das machen?

Richzilla
quelle

Antworten:

3

Bearbeiten Sie diese Datei mit Ihrem bevorzugten Texteditor

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

und setze Faenza an den Anfang der Erblinie.

Vallery
quelle
2
Sie sollten das Ändern von Systemdateien vermeiden. Ein Update auf Ubuntu-Mono macht Ihre Änderungen rückgängig.
idbrii
12

Ich denke, der beste Weg, Icon-Sets zusammenzuführen, besteht darin, ein sogenanntes Lightweight-Icon-Set zu erstellen. Dieses Icon-Set befindet sich in Ihrem Home-Verzeichnis, sodass es nicht durch Systemaktualisierungen überlastet wird. Es ist jedoch mit den System-Icon-Sets verknüpft und wird daher zusammen mit diesen aktualisiert. Diese Themen stehen anderen Benutzern auf Ihrem System nicht zur Verfügung.

Leichte Icon-Sets

Ubuntus Theme Manager sucht in ~/.iconsund /usr/share/iconsnach Iconsets. Alles, was ~/.iconsüberschrieben werden muss /usr/share/icons.Sie können also einen Symbolsatz aus dem Systemverzeichnis in Ihr Ausgangsverzeichnis kopieren, um das Symbol anzupassen, und nur die Teile einschließen, die Sie ändern möchten!

Im Allgemeinen denke ich, dass es am besten ist, eigene Icon-Sets zu erstellen, die die System-Sets verwenden. Sie können dies tun, indem Sie einen Symbolsatz und eine index.theme-Datei erstellen und einige Symbole hinzufügen. Wenn Sie jedoch verschiedene Symbolsätze kombinieren, müssen Sie deren InheritsAttribut überschreiben , damit Sie Ihre eigene Rangfolge festlegen können.

Erstellen eines Symbolsatzes zum Zusammenführen von Themen

Erstellen wir ein Super-Mono-Icon-Set:

# 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

Jetzt haben wir ein neues Icon im Erscheinungsbild, das genau wie Faenza-Darkest ist.

Um unsere beiden Themen zusammenzuführen, ändern wir das Supermono-Thema so, dass es von Ubuntu-Mono-Dunkel und dann von Faenza erbt.

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

Das sollte für Richzilla ausreichen, wähle einfach Super-Mono in Aussehen.

Benutzerdefinierte Symbole hinzufügen

Wir können diesem Icon-Set auch einzelne Icons hinzufügen:

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

Und jetzt kombiniert unser Super-Mono-Thema Ubuntu-Mono-Dark und Faenza, außer es verwendet eine Ikone von Faenza-Darkest. In den späteren Abschnitten erfahren Sie, wie Sie mehr als nur einige Symbole verwenden.

Es ist wichtig zu sehen, dass ich das index.theme von Faenza-Darkest kopiert und dann Icons von Faenza-Darkest verwendet habe. Die Datei index.theme gibt an, wo sich die Symbole befinden könnten. Wenn Sie einzelne Symbole aus verschiedenen Symbolsätzen ziehen möchten, müssen Sie deren index.theme-Dateien zusammenführen. Sie können sich die Dateien ansehen und ein Feld mit dem Namen Verzeichnisse sehen, in dem alle Ordner mit Symbolen aufgelistet sind. Dann sehen Sie andere Felder, die diese Ordner beschreiben. Wenn Sie ein Symbol hinzufügen, das in diesen Feldern nicht beschrieben wird, wird dieses Symbol ignoriert. Weitere Informationen finden Sie in der index.theme-Spezifikation .

Erweitert: Selektives Kombinieren von drei Symbolsätzen

Ich liebe auch Ubuntu-Mono-Icons. Ich liebe Faenzas App-Symbole, aber ich mag Faenzas Mono-Symbole (die Anzeigen und Schaltflächen) nicht. Ich mag auch elementare Symbole. Also möchte ich diese drei Icon-Sets kombinieren. Soweit ich weiß, ist der beste Weg, dies zu tun, indem Sie die Symbole, die Sie mögen, isolieren.

  1. Verwenden Sie Ubuntu-Mono-Dark
  2. Verwenden Sie die App-Symbole von Faenza
  3. Ansonsten benutze die elementary Icons

Dazu müssen wir Ubuntu-Mono-Dark anweisen, von nichts zu erben (also können wir auch Faenza und Elementary verwenden).

# 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

Sie werden feststellen, dass das Ubuntu-Mono-Dark-Icon-Set jetzt defekt ist. Es fehlen Symbole, die von Humanity-Dark bereitgestellt werden, und andere Symbolsätze, von denen es erbt. Diese Änderung wirkt sich nur auf Ihren Benutzer aus.

Jetzt können wir ein neues Icon-Set erstellen, das die App-Icons von Faenza verwendet.

# 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/.

Dieses Faenza-Apps-Icon-Set ist ebenfalls defekt. Es gibt nur Symbole für Apps. Alle anderen Symbole fehlen, weil wir die Inherits entfernt haben.

Jetzt erstellen wir das zu verwendende Icon-Set. Unser Icon-Set enthält keine Icons, sondern verbindet nur unsere anderen Icon-Sets.

# 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

Jetzt sollten wir in der Lage sein, unter Darstellung die Option Zusammenführen-Mono-Dunkel auszuwählen, und wir werden ein schönes neues Icon-Set haben! (Hinweis: Wir sollten index.theme-Dateien nicht zusammenführen müssen, da wir keine Symbole aus verschiedenen Symbolsätzen zu merge-mono-dark hinzufügen. Stattdessen verwenden wir Inherits, um die Symbolsätze automatisch zusammenzuführen.)


Erklärung einiger Befehle

Ich benutze viele Terminal-Befehle, um diese Antwort zu vereinfachen, aber hier ist eine Beschreibung, was sie tun.

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

Dadurch wird in Ihrem Icon-Set ein Zeiger auf das Gtk-Paste-Icon des System-Icon-Sets erstellt. Auf diese Weise wird kein zusätzlicher Festplattenspeicherplatz verwendet und Ihr Symbolsatz wird zusammen mit dem Symbolsatz des Systems aktualisiert. Wenn Sie das nicht möchten, ersetzen Sie es ln -sdurch cp -r.

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

Bedeutet, alle darkdurch lightin ~ / file zu ersetzen .

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

Das .*$bedeutet, dass ein beliebiger Text (. *) An das Ende der Zeile ($) angehängt wird.

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

Hier fügen wir Ubuntu-Mono-Dark vor die Inherits-Liste ein, weil wir suchen Inherits= und durch ersetzenInherits=ubuntu-mono-dark,

Überall, wo ich es verwende sed, können Sie die Datei bearbeiten und die Änderungen stattdessen manuell anwenden.

idbrii
quelle
1
<sarcasm> Ich bin mir nicht sicher, ob dieser Beitrag detailliert genug ist. </ sarcasm> Aber im Ernst, tolle Antwort. Ich hatte tatsächlich ein ähnliches Problem mit dem Clementines-Symbol, das hiermit behoben wurde.
zookalicious