Nun, einige DEs zeigen dies, wenn Sie versuchen, das Symbol von etwas zu ändern, aber es ist ziemlich einfach, es selbst zu tun. Finden Sie einfach alle Symbole, stellen Sie Links zu ihnen in einem Verzeichnis her und durchsuchen Sie das Verzeichnis. Die Symbole mit unterschiedlichen Auflösungen haben denselben Namen. Was sich ändert, ist der Pfad. Beispielsweise:
$ find /usr/share/icons/ -name '*emacs.*'
/usr/share/icons/hicolor/16x16/apps/emacs.png
/usr/share/icons/hicolor/48x48/apps/emacs.png
/usr/share/icons/hicolor/scalable/apps/emacs.svg
/usr/share/icons/hicolor/128x128/apps/emacs.png
/usr/share/icons/hicolor/32x32/apps/emacs.png
/usr/share/icons/hicolor/24x24/apps/emacs.png
/usr/share/icons/Mint-X/apps/96/emacs.svg
/usr/share/icons/Mint-X/apps/16/emacs.png
/usr/share/icons/Mint-X/apps/24/emacs.png
/usr/share/icons/Mint-X/apps/48/emacs.png
/usr/share/icons/Mint-X/apps/32/emacs.png
/usr/share/icons/Mint-X/apps/22/emacs.png
Wie Sie oben sehen können, ist das allgemeine Format /ParentDir/ThemeName/CLass/Resolution/IconName
. Da der Name des Symbols identisch ist, können wir Duplikate leicht vermeiden, indem jeder erstellte Link alle vorhandenen Links mit demselben Namen überschreibt. Wir möchten jedoch die Symbole aus den verschiedenen Themen getrennt trennen, sodass etwas mehr Skripte erforderlich sind:
#!/usr/bin/env bash
## Create the target directory
mkdir -p ~/foo
## Iterate over all files/dirs in the target locations
for i in ~/.icons/* /usr/share/icons/* /usr/share/pixmaps/*; do
## find all icon files in this directory. If the current $i
## is not a directory, find will just print its path directly.
find "$i" -name '*xpm' -o -name '*.svg' -o -name '*png' |
## Iterate over find's results
while read ico; do
## Make the link. ${var##*/} will print the
## basename of $var, without the path. Here, I use
## it both to get the theme name (${i##*/}) and the
## icon's name (${ico##*/}).
ln -sf "$ico" "${i##*/}"_"${ico##*/}"
done
done
Das obige Skript erstellt das Verzeichnis, ~/foo
das Links zu jeder Ihrer eindeutigen Symboldateien enthält. Die -f
Option, ln
es anzuweisen, vorhandene Dateien mit demselben Namen zu überschreiben. Da wir den Themennamen im Namen des Links verwenden, sollten keine Duplikate vorhanden sein. Mit den emacs.png
oben gezeigten Symbolen wird beispielsweise Folgendes erstellt:
hicolor_emacs.png -> /usr/share/icons/hicolor/48x48/apps/emacs.png
Mint-X_emacs.png -> /usr/share/icons/Mint-X/apps/22/emacs.png
Sie können jetzt navigieren ~/foo
und einen Blick darauf werfen:
Um die Quellpakete zu erhalten, können Sie Folgendes ausführen:
for i in ~/foo/*; do dpkg -S $(readlink -f "$i"); done