Индикаторы с двумя способами могут использовать значки:
Пользовательский значок. Обычно это входит в /usr/share/pixmaps/, хотя некоторые из авторов могут отправлять значки индикаторов в другие каталоги. Jacob Vlijm, чей ответ на этой странице и который также является автором индикатора SpaceView, например, решил поместить значки для этого индикатора в /opt/spaceview/icon. С этими типами значков это немного сложно, но не сложно - используйте dpkg -L <package name> или cat /var/lib/dpkg/info/PACKAGE.list и найдите файл значка с расширением .png или .svg. Это наиболее типичный стандартный, тематический значок. Их обычно можно найти в папке /usr/share/icons. Например, в моих индикаторах, таких как индикатор Udisks, я часто полагаюсь на то, что находится в /usr/share/icons/gnome, поскольку они являются стандартными и поставляются с любой установкой Ubuntu. Если вы не найдете значок из запроса dpkg, скорее всего, пакет использует стандартный значок.Если индикатор написан на Python или Ruby, просмотр исходного кода для подсказок может быть относительно простым, так как это скрипты, и достаточно использовать grep для поиска по исходному коду. Скомпилированные языки, такие как C и Vala, не поставляются с исходным кодом, поэтому вам нужно будет получить его либо через apt-get source package-name, либо из того места, где вы получили пакет. (Adventurous users может использовать hexdump или декомпилировать исполняемый файл, но IMHO слишком много работает для любопытства по значку).
ПРИМЕЧАНИЕ. Если значок находится в одном из стандартных каталогов, например /usr/share/icons/ или /usr/share/pixmaps, автор программного обеспечения может выбрать вызов значка просто по имени, без расширений. Например, в моей udisks-indicator я использую эту строку для вызова одного из стандартных значков:
self.app.set_icon("drive-harddisk-symbolic")
Обратите внимание на отсутствие расширения .svg или .png. Таким образом, в этом случае у нас есть имя значка, и мы можем найти его с помощью стандартных команд Linux, таких как locate или find.
Если вы действительно хотите иметь команду для поиска значков, просто используйте эту простую комбинацию:
dpkg -L <Package name here> | xargs file | grep -i image
Вот пример. Я знаю, что индикатор diskman использует пользовательский значок. Итак, что говорит нам эта команда?
$ dpkg -L indicator-diskman | xargs file | grep -i image
/usr/share/indicator-diskman/images: directory
/usr/share/indicator-diskman/images/drive-harddisk.svg: SVG Scalable Vector Graphics image
/usr/share/indicator-diskman/images/media-optical.png: PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced
/usr/share/indicator-diskman/images/disks.png: PNG image data, 64 x 64, 8-bit gray+alpha, non-interlaced
/usr/share/indicator-diskman/images/locked.png: PNG image data, 16 x 16, 8-bit/color RGBA, non-interlaced
/usr/share/indicator-diskman/images/lock.svg: SVG Scalable Vector Graphics image
/usr/share/indicator-diskman/images/unlocked.png: PNG image data, 16 x 16, 8-bit/color RGBA, non-interlaced
/usr/share/indicator-diskman/images/media-eject.svg: SVG Scalable Vector Graphics image
/usr/share/indicator-diskman/images/disk.png: PNG image data, 32 x 32, 8-bit/color RGBA, non-interlaced
/usr/share/pixmaps/indicator-diskman.png: PNG image data, 64 x 64, 8-bit gray+alpha, non-interlaced
Обратите внимание на /usr/share/pixmaps/indicator-diskman.png последнее изображение, которое на самом деле показывает индикатор на панели.
А что, если индикатор использует стандартный значок? Очевидно, что выхода не будет:
$ dpkg -L udisks-indicator | xargs file | grep -i image
$
Пока нет стандартного набора, есть множество типичных мест, куда идут значки, и мы можем использовать dpkg для запроса информация о том, какие файлы поставляются с каждым конкретным пакетом. Наконец, возможно, это не самое техническое предложение, но подумайте о том, чтобы отправить разработчикам электронную почту или остановить их IRC или чат и просто спросить их: «Эй, какой значок использует ваш индикатор?». Разработчики обычно рады услышать от людей, которые используют свое программное обеспечение, и не будут возражать, чтобы ответить на быстрый вопрос.