Показать окна на всех рабочих пространствах? (аддон не работает) [дубликат]

Значки и их потенциальные местоположения

Индикаторы с двумя способами могут использовать значки:

Пользовательский значок. Обычно это входит в /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.

Поиск с использованием стандартных инструментов Linux

Если вы действительно хотите иметь команду для поиска значков, просто используйте эту простую комбинацию:

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 или чат и просто спросить их: «Эй, какой значок использует ваш индикатор?». Разработчики обычно рады услышать от людей, которые используют свое программное обеспечение, и не будут возражать, чтобы ответить на быстрый вопрос.

6
задан 23 March 2012 в 19:25

0 ответов

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

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