Какой значок использует Unity для приложения?

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

/usr/share/icons/hicolor/16x16/apps/
/usr/share/icons/hicolor/48x48/apps/
/usr/share/icons/hicolor/32x32/apps/
/usr/share/pixmaps/

После того, как я установил пакет .deb и заменил установленные иконки новыми (на диске), старый значок все еще отображается в Unity. Какой значок использует Unity для приложения?

3
задан 24 October 2011 в 04:57

6 ответов

Когда я впервые задал вопрос, я не знал, что значок, используемый в Dash, отличается от значка, используемого для элемента Launcher. Я предположил, что Unity использует только значки из /usr/share/icons/hicolor/*/apps/ или /usr/share/pixmaps/, так как именно там я установил все значки, но я ошибся.

Когда вы открываете Dash для запуска приложения, Ubuntu использует один из значков упомянутый в вопросе, но когда приложение отображается в Launcher (как элемент запуска), его значок является значком приложения. В моем случае я запускаю приложение Java, так что это значок, который я установил с помощью JFrame # setIconImage (Image).

Я использовал значок 16x16 пикселей, который выглядел размытым в Launcher. Теперь я использую значок 64x64 пикселей, и он выглядит намного лучше.

1
ответ дан 25 May 2018 в 17:43

Иконки кэшируются в одном очень большом файле:

GTK + может использовать файлы кэша, созданные с помощью gtk-update-icon-cache, чтобы избежать многого системного вызова и накладных расходов на поиск при запуске приложения. Поскольку формат файлов кеша позволяет им быть mmap () ed совместно используемым между несколькими приложениями, общее потребление памяти также уменьшается.

Каждая тема должна создавать файл кеша при установке.

/usr/share/icons/[theme]/icon-theme.cache

Так, например, если вы удалите / переименуете файл-кэш-файл gnome:

sudo mv /usr/share/icons/gnome/icon-theme.cache /usr/share/icons/gnome/icon-theme.cache.backup

Затем вы можете восстановить кеш:

sudo gtk-update-icon-cache --force /usr/share/icons/gnome

В вашем случае вы добавили свои иконки приложений в hicolor - поэтому вы должны принудительно восстановить этот файл кеша, чтобы забрать новые значки:

sudo gtk-update-icon-cache --force /usr/share/icons/hicolor

источник

4
ответ дан 25 May 2018 в 17:43
  • 1
    Для установки пакетов, требующих регенерации кеша значков, обычно используются некоторые крючки apt / dpkg. Следовательно, возможно, это не debian способ поместить gtk-update-icon-cache в postinst-скрипт. – aquaherd 27 October 2011 в 02:04

Для большинства целей значок - это то, что указано в приложении .desktop на строке Icon =. Обычно эти .desktops находятся в / usr / share / applications & amp; может открываться в текстовом редакторе (хотя не «обычно» из контекстного меню) или проверить его свойства для исправления способа редактирования, если это необходимо. Редактор лучше.

Если ссылаться на значок systray, который установлен в другом месте, в? Binary? возможно.

0
ответ дан 25 May 2018 в 17:43
  • 1
    У меня также есть файл .desktop, который указывает значок, и он установлен в usr/share/applications. Однако моя проблема заключается не в том, что она не находит значок. Моя проблема в том, что, хотя исходных значков нет, потому что я заменяю их чем-то другим, Unity по-прежнему использует один из них. Итак, вопрос в том, какой из них и где он кэширует его? – Nicu 24 October 2011 в 23:12
  • 2
    Вы перезапустили Unity после их замены? Эти значки будут кэшироваться, поэтому вам не нужно читать с диска каждый раз, когда вы открываете объектив. Это означает, что даже если вы удалите их с диска, они будут присутствовать в памяти. – Jo-Erlend Schinstad 27 October 2011 в 03:51
  • 3
    Я думаю, что сделал, и если я хорошо помню, старые иконки все еще использовались Unity, но сегодня, когда я снова вошел в систему, в Dash появились новые значки. Я ничего не делал для обновления кеша, Unity просто использовал новые значки в Dash, но не для Item Launcher. См. Мои комментарии к вопросу для более подробной информации. – Nicu 27 October 2011 в 09:59

Для большинства применений значок - это то, что указано в приложении .desktop на строке Icon =. Обычно эти .desktops находятся в / usr / share / applications & amp; может открываться в текстовом редакторе (хотя не «обычно» из контекстного меню) или проверить его свойства для исправления способа редактирования, если это необходимо. Редактор лучше всего.

Если ссылаться на значок systray, который установлен в другом месте, в? Бинарном? может быть.

0
ответ дан 25 July 2018 в 21:01

Иконки кэшируются в одном очень большом файле:

GTK + может использовать файлы кеша, созданные с помощью gtk-update-icon-cache, чтобы избежать большого количества системных вызовов и накладных расходов на поиск диска, когда запускается приложение. Поскольку формат файлов кэша позволяет им быть mmap () ed совместно используемым несколькими приложениями, общее потребление памяти также уменьшается.

Каждая тема должна создавать файл кеша при установке.

/usr/share/icons/[theme]/icon-theme.cache

Так, например, если вы удалите / переименуете файл-кэш-файл gnome:

sudo mv /usr/share/icons/gnome/icon-theme.cache /usr/share/icons/gnome/icon-theme.cache.backup

Затем вы можете восстановить кеш:

sudo gtk-update-icon-cache --force /usr/share/icons/gnome

В вашем случае вы добавили свои значки приложений в hicolor - поэтому вы должны принудительно восстановить этот файл кеша, чтобы забрать новые значки:

sudo gtk-update-icon-cache --force /usr/share/icons/hicolor

источник

4
ответ дан 7 August 2018 в 20:37

Для большинства применений значок - это то, что указано в приложении .desktop на строке Icon =. Обычно эти .desktops находятся в / usr / share / applications & amp; может открываться в текстовом редакторе (хотя не «обычно» из контекстного меню) или проверить его свойства для исправления способа редактирования, если это необходимо. Редактор лучше всего.

Если ссылаться на значок systray, который установлен в другом месте, в? Бинарном? может быть.

0
ответ дан 15 August 2018 в 21:47

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

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