Я хочу видеть, какие значки установлены и доступны в моей системе и которыми именами я должен обратиться к ним.
Как я могу добраться, приятно форматированный список всех уникальных значков (не показывайте несколько разрешений отдельно), который содержит имя значка, миниатюру предварительного просмотра, местоположение и возможно если возможный, куда это прибыло из (например, который пакет знаковой темы)?
Система: Ubuntu 15.10 Коварный Оборотень 64 бита
Рабочий стол: единица
gtk3-icon-браузер это графическое приложение для перечисления тематических иконок.
На данный момент оно все еще находится в стадии разработки и доступно для 15.04 (яркий) и более новых релизов. Его развитие можно проследить по ссылке в этом посте блога, датированном 2014.
Скриншот 1: gtk3-icon-браузер (3.24.18) в теме Adwaita, просматривающей иконки танго, с обычным (слева) и символическим видом
Скриншот 2: gtk3-icon-браузер (3). 24.18) с поисковым вводом "сохранить" и всплывающим окном с подробной информацией об иконках, просмотром темы иконки танго (слева) и элементарной темы иконки Xfce
Быстрый обзор на основе вышеуказанных скриншотов:
Ссылочные примечания:
^1: По умолчанию этот инструмент будет отображаться как просмотр иконок (нет возможности изменить его на просмотр списка). При одиночном или двойном щелчке на каждом значке будут отображены все доступные разрешения для этого значка.
^2: В более новой версии браузера значков (начиная с 3.22.30 или около того) во всплывающее окно добавлена кнопка "Copy to Clipboard" (Копировать в буфер обмена), позволяющая скопировать имя значка одним щелчком мыши.
^3: Этот инструмент, скорее всего, просматривает каталог
/usr/share/icons
(без указания местоположения каждого значка) и извлекает дополнительную информацию в соответствии со спецификацией наименования значка.^4: Этот инструмент показывает только значки для текущей темы. Чтобы показывать значки для другой темы, измените внешний вид окружения рабочего стола с текущей темы на другую.
Браузер значков требует наличия GTK+ 3.13.4 или более новой. Установите соответствующий пакет gtk-3-examples
в 15.04 (vivid) или в более новых релизах.
sudo apt-get install gtk-3-examples
gtk3-icon-browser
Впервые протестировано в 15.04 (vivid), и самое позднее в 20.04 (focal).
Связанные источники:
Исходный код gtk/demos на master для GNOME/gtk на GitHub.
Новый инструмент браузера иконок для разработчиков GTK+ в разработке на Fedora Magazine
Кратко упомянутый со скриншотом в этом ответе на Ask Ubuntu.
Ну, некоторые DE показывают это, когда вы пытаетесь изменить иконку чего-то, но это довольно просто сделать самому. Просто найдите все иконки, сделайте ссылки на них в каком-нибудь каталоге и просмотрите каталог. Иконки разных разрешений будут иметь одно и то же имя, что меняет путь. Например:
$ 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
. Таким образом, поскольку имя иконки одно и то же, мы можем легко избежать дублирования, создавая каждую ссылку, перезаписывая все существующие ссылки с одинаковым именем. Тем не менее, мы хотим jeep иконки из разных тем отдельно, так что требует немного больше скриптинга:
#!/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
и посмотрите:
Затем, чтобы получить исходные пакеты, можно запустить:
hicolor_emacs.png -> /usr/share/icons/hicolor/48x48/apps/emacs.png
Mint-X_emacs.png -> /usr/share/icons/Mint-X/apps/22/emacs.png
:
for i in ~/foo/*; do dpkg -S $(readlink -f "$i"); done