Я хочу посмотреть, какие значки установлены и доступны в моей системе и по каким именам я должен ссылаться на них.
Как я могу получить красиво отформатированный список всех уникальных значков (не показывать несколько разрешений отдельно), который содержит имя значка, миниатюру предварительного просмотра, местоположение и, возможно, по возможности, откуда он появился (например, который представляет собой тематический пакет)?
Система: Ubuntu 15.10 Wily Werewolf 64 бит Desktop: Unity
gtk3-icon-browser - графическое приложение для отображения тематических значков.
К этой дате он все еще находится в разработке и доступен в пакете gtk-3-examples для ярких и новых версий. Его развитие можно проследить до этого сообщения в блоге, датированного 2014 годом.
gtk3-icon-browser
это сообщение в блоге от 2014 года
1 Этот инструмент будет отображаться как вид значка по умолчанию (без возможности изменения в виде списка). Двойной щелчок на каждом значке отобразит все доступные разрешения для этого значка.
1 Этот инструмент показывает только значки текущей темы. Чтобы показать значки для другой темы, измените внешний вид текущей темы на другую.2 Этот инструмент, скорее всего, смотрит в каталог /usr/share/icons (без указания мест для каждого значка) и извлекает дополнительную информацию в соответствии со спецификацией именования значков.
Просмотр человеко-темных значков ( с диалоговом отображением)
sudo apt-get install gtk-3-examples
gtk3-icon-browser
gtk3-icon-browser - графическое приложение для отображения тематических значков.
К этой дате он все еще находится в разработке и доступен в пакете gtk-3-examples для ярких и новых версий. Его развитие можно проследить до этого сообщения в блоге, датированного 2014 годом.
gtk3-icon-browser
это сообщение в блоге от 2014 года
1 Этот инструмент будет отображаться как вид значка по умолчанию (без возможности изменения в виде списка). Двойной щелчок на каждом значке отобразит все доступные разрешения для этого значка.
1 Этот инструмент показывает только значки текущей темы. Чтобы показать значки для другой темы, измените внешний вид текущей темы на другую.2 Этот инструмент, скорее всего, смотрит в каталог /usr/share/icons (без указания мест для каждого значка) и извлекает дополнительную информацию в соответствии со спецификацией именования значков.
Просмотр человеко-темных значков ( с диалоговом отображением)
sudo apt-get install gtk-3-examples
gtk3-icon-browser
Ну, некоторые DEs показывают это, когда вы пытаетесь изменить значок чего-то, но это очень легко сделать самому. Просто найдите все значки, сделайте ссылки на них в каком-то каталоге и просмотрите каталог. Значки с разными разрешениями будут иметь одно и то же имя, какие изменения являются путями. Например:
$ 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
Как вы можете видеть выше, общий формат /ParentDir/ThemeName/CLass/Resolution/IconName. Итак, поскольку имя иконы совпадает с тем, мы можем легко избежать дубликатов, создав каждую созданную ссылку, переписывая любые существующие ссылки с тем же именем. Тем не менее, мы хотим, чтобы джип значков из разных тем разделялся, поэтому требуется немного больше скриптов:
#!/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
В приведенном выше скрипте будет создан каталог ~/foo, который будет содержать ссылки на каждый ваших уникальных файлов значков. Опция -f в ln сообщает, что она перезаписывает существующие файлы с тем же именем, и поскольку мы используем имя темы в названии ссылки, дубликатов не должно быть. Например, с учетом значков emacs.png, показанных выше, он создаст:
hicolor_emacs.png -> /usr/share/icons/hicolor/48x48/apps/emacs.png
Mint-X_emacs.png -> /usr/share/icons/Mint-X/apps/22/emacs.png
Теперь вы можете перейти к ~/foo и посмотреть:
Затем, чтобы получить исходные пакеты, вы можете запустить:
for i in ~/foo/*; do dpkg -S $(readlink -f "$i"); done
Ну, некоторые DEs показывают это, когда вы пытаетесь изменить значок чего-то, но это очень легко сделать самому. Просто найдите все значки, сделайте ссылки на них в каком-то каталоге и просмотрите каталог. Значки с разными разрешениями будут иметь одно и то же имя, какие изменения являются путями. Например:
$ 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
Как вы можете видеть выше, общий формат /ParentDir/ThemeName/CLass/Resolution/IconName. Итак, поскольку имя иконы совпадает с тем, мы можем легко избежать дубликатов, создав каждую созданную ссылку, переписывая любые существующие ссылки с тем же именем. Тем не менее, мы хотим, чтобы джип значков из разных тем разделялся, поэтому требуется немного больше скриптов:
#!/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
В приведенном выше скрипте будет создан каталог ~/foo, который будет содержать ссылки на каждый ваших уникальных файлов значков. Опция -f в ln сообщает, что она перезаписывает существующие файлы с тем же именем, и поскольку мы используем имя темы в названии ссылки, дубликатов не должно быть. Например, с учетом значков emacs.png, показанных выше, он создаст:
hicolor_emacs.png -> /usr/share/icons/hicolor/48x48/apps/emacs.png
Mint-X_emacs.png -> /usr/share/icons/Mint-X/apps/22/emacs.png
Теперь вы можете перейти к ~/foo и посмотреть:
Затем, чтобы получить исходные пакеты, вы можете запустить:
for i in ~/foo/*; do dpkg -S $(readlink -f "$i"); done
Ну, некоторые DEs показывают это, когда вы пытаетесь изменить значок чего-то, но это очень легко сделать самому. Просто найдите все значки, сделайте ссылки на них в каком-то каталоге и просмотрите каталог. Значки с разными разрешениями будут иметь одно и то же имя, какие изменения являются путями. Например:
$ 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
Как вы можете видеть выше, общий формат /ParentDir/ThemeName/CLass/Resolution/IconName
. Итак, поскольку имя иконы совпадает с тем, мы можем легко избежать дубликатов, создав каждую созданную ссылку, переписывая любые существующие ссылки с тем же именем. Тем не менее, мы хотим, чтобы джип значков из разных тем разделялся, поэтому требуется немного больше скриптов:
#!/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
В приведенном выше скрипте будет создан каталог ~/foo
, который будет содержать ссылки на каждый ваших уникальных файлов значков. Опция -f
в ln
сообщает, что она перезаписывает существующие файлы с тем же именем, и поскольку мы используем имя темы в названии ссылки, дубликатов не должно быть. Например, с учетом значков emacs.png
, показанных выше, он будет создавать:
hicolor_emacs.png -> /usr/share/icons/hicolor/48x48/apps/emacs.png
Mint-X_emacs.png -> /usr/share/icons/Mint-X/apps/22/emacs.png
Теперь вы можете перейти к ~/foo
и посмотреть:
Затем, чтобы получить исходные пакеты, вы можете запустить:
for i in ~/foo/*; do dpkg -S $(readlink -f "$i"); done
Ну, некоторые DEs показывают это, когда вы пытаетесь изменить значок чего-то, но это очень легко сделать самому. Просто найдите все значки, сделайте ссылки на них в каком-то каталоге и просмотрите каталог. Значки с разными разрешениями будут иметь одно и то же имя, какие изменения являются путями. Например:
$ 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
Как вы можете видеть выше, общий формат /ParentDir/ThemeName/CLass/Resolution/IconName
. Итак, поскольку имя иконы совпадает с тем, мы можем легко избежать дубликатов, создав каждую созданную ссылку, переписывая любые существующие ссылки с тем же именем. Тем не менее, мы хотим, чтобы джип значков из разных тем разделялся, поэтому требуется немного больше скриптов:
#!/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
В приведенном выше скрипте будет создан каталог ~/foo
, который будет содержать ссылки на каждый ваших уникальных файлов значков. Опция -f
в ln
сообщает, что она перезаписывает существующие файлы с тем же именем, и поскольку мы используем имя темы в названии ссылки, дубликатов не должно быть. Например, с учетом значков emacs.png
, показанных выше, он будет создавать:
hicolor_emacs.png -> /usr/share/icons/hicolor/48x48/apps/emacs.png
Mint-X_emacs.png -> /usr/share/icons/Mint-X/apps/22/emacs.png
Теперь вы можете перейти к ~/foo
и посмотреть:
Затем, чтобы получить исходные пакеты, вы можете запустить:
for i in ~/foo/*; do dpkg -S $(readlink -f "$i"); done