Список представления всех доступных уникальных значков с их именами и миниатюрой

Я хочу видеть, какие значки установлены и доступны в моей системе и которыми именами я должен обратиться к ним.

Как я могу добраться, приятно форматированный список всех уникальных значков (не показывайте несколько разрешений отдельно), который содержит имя значка, миниатюру предварительного просмотра, местоположение и возможно если возможный, куда это прибыло из (например, который пакет знаковой темы)?

Система: Ubuntu 15.10 Коварный Оборотень 64 бита
Рабочий стол: единица

24
задан 17 November 2015 в 04:01

2 ответа

gtk3-icon-браузер это графическое приложение для перечисления тематических иконок.

На данный момент оно все еще находится в стадии разработки и доступно для 15.04 (яркий) и более новых релизов. Его развитие можно проследить по ссылке в этом посте блога, датированном 2014.

gtk3-icon-browser with normal and symbolic views

Скриншот 1: gtk3-icon-браузер (3.24.18) в теме Adwaita, просматривающей иконки танго, с обычным (слева) и символическим видом

gtk3-icon-browser with different icon themes

Скриншот 2: gtk3-icon-браузер (3). 24.18) с поисковым вводом "сохранить" и всплывающим окном с подробной информацией об иконках, просмотром темы иконки танго (слева) и элементарной темы иконки Xfce

Быстрый обзор на основе вышеуказанных скриншотов:

  • Красиво отформатированный список всех уникальных иконок: Да ^1
  • Содержит имя иконки: Да ^2
  • Предварительный просмотр миниатюры: Да
  • Расположение значков: Нет ^3
  • Отправка темы с иконками: Да ^4

Ссылочные примечания:

^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).

Связанные источники:

  1. Исходный код gtk/demos на master для GNOME/gtk на GitHub.

  2. Новый инструмент браузера иконок для разработчиков GTK+ в разработке на Fedora Magazine

  3. Кратко упомянутый со скриншотом в этом ответе на Ask Ubuntu.

22
ответ дан 23 November 2019 в 03:39

Ну, некоторые 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 и посмотрите:

enter image description here

Затем, чтобы получить исходные пакеты, можно запустить:

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
3
ответ дан 23 November 2019 в 03:39

Другие вопросы по тегам:

Похожие вопросы: