Eh bien, certains DE le montrent lorsque vous essayez de changer l'icône de quelque chose, mais il est assez facile de le faire vous-même. Il vous suffit de trouver toutes les icônes, de créer des liens vers celles-ci dans un répertoire et de parcourir le répertoire. Les icônes de différentes résolutions auront le même nom, ce qui change c'est le chemin. Par exemple:
$ 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
Comme vous pouvez le voir ci-dessus, le format général est /ParentDir/ThemeName/CLass/Resolution/IconName
. Ainsi, comme le nom de l'icône est le même, nous pouvons éviter les doublons facilement en faisant en sorte que chaque lien créé écrase les liens existants du même nom. Cependant, nous voulons séparer les icônes des différents thèmes, ce qui nécessite un peu plus de scripts:
#!/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
Le script ci-dessus créera le répertoire ~/foo
qui contiendra des liens vers chacun de vos fichiers d'icônes uniques. L' -f
option lui ln
indique d'écraser les fichiers existants avec le même nom et, puisque nous utilisons le nom du thème dans le nom du lien, il ne devrait pas y avoir de doublons. Par exemple, compte tenu des emacs.png
icônes ci-dessus, cela créera:
hicolor_emacs.png -> /usr/share/icons/hicolor/48x48/apps/emacs.png
Mint-X_emacs.png -> /usr/share/icons/Mint-X/apps/22/emacs.png
Vous pouvez maintenant, parcourir ~/foo
et consulter:
Ensuite, pour obtenir les packages source, vous pouvez exécuter:
for i in ~/foo/*; do dpkg -S $(readlink -f "$i"); done