Перегляньте список усіх доступних унікальних іконок з їх назвами та ескізами


15

Я хочу побачити, які піктограми встановлені та доступні у моїй системі та за якими іменами я маю на них посилатися.

Як я можу отримати добре відформатований список усіх унікальних піктограм (не показувати кілька роздільних можливостей окремо), що містить ім'я піктограми, мініатюру попереднього перегляду, місцеположення та, можливо, можливо, звідки воно походить (наприклад, з якого пакета тем значків)?

Система: Ubuntu 15.10 Wily Werewolf 64-бітний
Настільний: Єдність


Що стосується частини "з'ясування, з якого пакета" частина: "dpkg-query -S / bin / bash" виводить ім'я пакета виконуваного файлу bash в каталог / bin (як приклад того, як він працює). Маючи лише аргумент "/ bin", він виводить усі встановлені пакети для всіх файлів у каталозі / bin.
неок

2
find /usr/share/icons/ -iname '*.png' -or -iname '*.svg' -printf '%h %f %p\n' | sed -r 's;^/usr/share/icons/([^/]*)/[^ ]* ;\1 ;' | sort -u -k1,2 | column -tЯ б сказав, що охоплює більшу частину (крім мініатюрної частини). Я не впевнений, як ви очікуєте побачити ескіз у списку.
муру

@muru У вікні графічного інтерфейсу? Я не сказав, що це повинно бути рішенням командного рядка ...
Байт командир

@ByteCommander Ви цього не зробили, але ви також не сказали, що таке графічний інтерфейс. Ви очікуєте, що ми запрограмуємо графічний інтерфейс для вас?
муру

@muru Ні, але я думав, що хтось, можливо, може знати вже існуючий інструмент для цього? Я знаю, що колись я щось подібне використовував, він, ймовірно, був вбудований в якусь функцію XFCE, можливо, щоб вибрати піктограму для пускових установок ...
Byte Commander

Відповіді:


14

gtk3-icon-browser - це графічне додаток для переліку тематичних іконок.

На сьогоднішній день він ще знаходиться в стадії розробки та доступний у gtk-3-examplesпакеті для Vivid та нових версій. Його розвиток можна простежити в цій публікації щоденника 2014 року .

Перегляд елементарної темної піктограми Xfce

gtk3-icon-browser Normal для Xubuntu 15.04

gtk3-icon-browser Symbolic на Xubuntu 15.04

Швидкий огляд

  • Добре відформатований список усіх унікальних іконок: Так 1
  • Містить назву піктограми: Так
  • Ескіз попереднього перегляду: Так
  • Розташування ікон: №2
  • Походження теми значка: Так 3

1 Цей інструмент за замовчуванням відображатиметься як перегляд піктограм (жодним чином не змінювати перегляд списку). Двічі клацніть на кожній піктограмі, будуть відображатися всі доступні рішення для цього значка.

gtk3-icon-browser Символічний значок подвійного клацання

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

3 Цей інструмент відображає лише піктограми для поточної теми. Щоб відобразити піктограми на іншу тему, змініть зовнішній вигляд із поточної теми на іншу.

Перегляд темно значків "Людство" (із спливаючим діалоговим вікном)

gtk3-icon-browser Людина-темні іконки

Вимоги

  • GTK + 3.13.4 або новіші
  • Встановіть gtk-3-examplesу 15.04 (Vivid) або новіших версіях

Як встановити

sudo apt-get install gtk-3-examples

Як бігати

gtk3-icon-browser

Тестовано, працюючи на Xubuntu 15.04, використовуючи GTK + 3.14.13 (остання версія до цієї дати відповіді).

Суміжні джерела

  1. Вихідний код gtk / demos у майстер для GNOME / gtk на GitHub.

  2. Новий інструмент для перегляду значків для розробників GTK + в розробці журналу Fedora

  3. Коротко згадується із скріншотом у цій відповіді на Ask Ubuntu.


Це рішення майже ідеальне. Це було б, якби він показував іконки з інших тем, які також не передбачені поточною темою.
Байт-командир

@ByteCommander хтось повинен сказати AB, щоб скасувати відповідь, яка запропонувала саме цю програму.
муру

3

Ну, деякі ДЕ показують це, коли ви намагаєтесь змінити значок чогось, але зробити це досить легко самостійно. Просто знайдіть усі піктограми, зробіть посилання на них у деякому каталозі та перегляньте каталог. Піктограми різної роздільної здатності матимуть однакову назву, що змінюється - шлях. Наприклад:

$ 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

Однак це пов'язуватиме зображення різних доступних дозволів, правда? Чи можу я відфільтрувати дублікати різних розмірів і просто показати найбільший?
Байт-командир

@ByteCommander ні, це не буде. Ці -fопції дозволяють lnперезаписувати існуючі посилання так тільки один значок з тим же ім'ям буде показаний. Однак я щойно зрозумів, що хоч дупи не будуть проблемою, вас багато не вистачить, оскільки всі gedit.pngзначки будуть перезаписані останніми знайденими. Це те, що я хотів мати справу з резолюціями, але це не стосується різних тем: буде показано лише одну піктограму теми. Я зараз це намагаюся виправити.
тердон

@ByteCommander ОК, дивіться оновлену відповідь. Це все ще не має проблем з дублікатами, але тепер правильно відображатимуться значки з різних тем.
тердон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.