Что такое иконы в Ubuntu? [dубликат]

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

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

Система: Ubuntu 15.10 Wily Werewolf 64 бит Desktop: Unity

7
задан 17 November 2015 в 15:01

6 ответов

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

К этой дате он все еще находится в разработке и доступен в пакете gtk-3-examples для ярких и новых версий. Его развитие можно проследить до этого сообщения в блоге, датированного 2014 годом.

gtk3-icon-browser

это сообщение в блоге от 2014 года

Быстрый просмотр

Красиво отформатированный список всех уникальных значков: Да 1 Содержит имя значка: Да Предпросмотр эскиза: Да Расположение значков: Нет 2 Icon theme origin: Yes 3 1 Этот инструмент будет отображаться по умолчанию в виде значков (без возможности изменения в виде списка). Двойной щелчок на каждом значке отобразит все доступные разрешения для этого значка.

1 Этот инструмент будет отображаться как вид значка по умолчанию (без возможности изменения в виде списка). Двойной щелчок на каждом значке отобразит все доступные разрешения для этого значка.

1 Этот инструмент показывает только значки текущей темы. Чтобы показать значки для другой темы, измените внешний вид текущей темы на другую.

2 Этот инструмент, скорее всего, смотрит в каталог /usr/share/icons (без указания мест для каждого значка) и извлекает дополнительную информацию в соответствии со спецификацией именования значков.

Просмотр человеко-темных значков ( с диалоговом отображением)

Требования

Красиво отформатированный список всех уникальных значков: Да 1 Установите gtk-3-examples в 15.04 (Vivid) или более новые версии

Как установить

sudo apt-get install gtk-3-examples

Как запустить

gtk3-icon-browser

2

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

Исходный код gtk / demos на master для GNOME / gtk на GitHub. Новый инструмент браузера значков для разработчиков GTK + в разработке в журнале Fedora. Кратко изложено скриншот в этом ответе на Ask Ubuntu.
7
ответ дан 17 July 2018 в 22:49

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

К этой дате он все еще находится в разработке и доступен в пакете gtk-3-examples для ярких и новых версий. Его развитие можно проследить до этого сообщения в блоге, датированного 2014 годом.

gtk3-icon-browser

это сообщение в блоге от 2014 года

Быстрый просмотр

Красиво отформатированный список всех уникальных значков: Да 1 Содержит имя значка: Да Предпросмотр эскиза: Да Расположение значков: Нет 2 Icon theme origin: Yes 3 1 Этот инструмент будет отображаться по умолчанию в виде значков (без возможности изменения в виде списка). Двойной щелчок на каждом значке отобразит все доступные разрешения для этого значка.

1 Этот инструмент будет отображаться как вид значка по умолчанию (без возможности изменения в виде списка). Двойной щелчок на каждом значке отобразит все доступные разрешения для этого значка.

1 Этот инструмент показывает только значки текущей темы. Чтобы показать значки для другой темы, измените внешний вид текущей темы на другую.

2 Этот инструмент, скорее всего, смотрит в каталог /usr/share/icons (без указания мест для каждого значка) и извлекает дополнительную информацию в соответствии со спецификацией именования значков.

Просмотр человеко-темных значков ( с диалоговом отображением)

Требования

Красиво отформатированный список всех уникальных значков: Да 1 Установите gtk-3-examples в 15.04 (Vivid) или более новые версии

Как установить

sudo apt-get install gtk-3-examples

Как запустить

gtk3-icon-browser

2

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

Исходный код gtk / demos на master для GNOME / gtk на GitHub. Новый инструмент браузера значков для разработчиков GTK + в разработке в журнале Fedora. Кратко изложено скриншот в этом ответе на Ask Ubuntu.
7
ответ дан 24 July 2018 в 13:25

Ну, некоторые 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
2
ответ дан 17 July 2018 в 22:49

Ну, некоторые 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
2
ответ дан 24 July 2018 в 13:25
  • 1
    Однако это свяжет изображения всех различных доступных разрешений, верно? Могу ли я фильтровать дубликаты разных размеров и показывать самый большой? – Byte Commander 9 November 2015 в 17:58
  • 2
    @ByteCommander нет, не будет. Параметры -f заставляют ln перезаписывать существующие ссылки, поэтому будет отображаться только один значок с тем же именем. Тем не менее, я просто понял, что, в то время как обман не будет проблемой, вы пропустите много, так как все значки gedit.png будут перезаписаны последним найденным. Вот что я хотел решать с разрешениями, но это не касается разных тем: будет показана только одна тема. Я пытаюсь это исправить. – terdon♦ 9 November 2015 в 21:06
  • 3
    @ByteCommander ОК, см. Обновленный ответ. Это все еще не имеет проблемы с дубликатами, но теперь будет корректно отображать значки из разных тем. – terdon♦ 9 November 2015 в 21:57

Ну, некоторые 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
2
ответ дан 5 August 2018 в 02:30

Ну, некоторые 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
2
ответ дан 14 August 2018 в 13:52

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

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