среда, 16 июля 2014 г.

Как добавить нужную иконку?

Многие авторы тем иконок не в силах охватить такое разнообразное количество приложений и зачастую  для некоторых приложений используется стандартная тема  Oxygen, которая несомненно портит общий стиль. В данной статье будут указаны инструкции для добавления нужных иконок.


Как вы знаете, темы иконок располагаются в /usr/share/icons. В данной директории находятся каталоги с установленными темами. У каждой темы существует индекс-файл index.theme. Именно в index.theme указана информация о построении директории темы, названия темы, дополнительные значки, размеры иконок и другая различная информация. К примеру, если в поле Inherits указать KFenza, то те значки, которые отсутствуют в сторонней теме будут браться из набора KFaenza. Также дополнительно через запятую можно указать и другие доступные темы иконок.
Сама директория темы значков обычно имеет каталоги с подгруппами. В них расположены иконки для:

  • действий - actions
  • анимации - animations
  • приложений - apps
  • категорий - categories
  • устройств - devices
  • эмблем - emblems
  • типов файлов - mimetypes
  • мест - places
  • статусов - status

Теперь давайте перейдем к практике и добавим нужные иконки для приложений (apps). Возьмем, к примеру тему Evolvere и посмотрим каких иконок не хватает.


Из скриншота выше видно, что на доке используются иконки Oxygen для:

  • Team Viewer
  • qBittorrent
  • Qutim

Исправим это. Запускаем файловый менеджер Dolphin от sudo:
kdesudo dolphin
Переходим в директорию /usr/share/applications, где мы и найдем файлы запуска программ, в которых прописано имя иконки приложений или путь к ней.



Открываем нужный значок запуска через текстовый редактор Kate. К примеру 
qutim.desktop, и смотрим нужное нам имя иконки в поле Icon:
Icon=qutim



Также мы и поступим с другими нужными нам иконками для qBittorrent и Team Viewer. Стоит заметить, что в некоторых desktop-файлах указано не имя иконки, а путь к значку. К примеру, так реализовано в Team Viewer:
Icon=/opt/teamviewer9/tv_bin/desktop/teamviewer.png
Для удобства лучше исправить на:
Icon=teamviewer
Тем самым система будет искать в примененной теме значков teamviewer.png или teamviewer.svg.
С именами разобрались, переходим к созданию значков. И тут есть три варианта:

  • Создать символьную ссылку на уже существующий (похожий) значок
  • Нарисовать самому в Gimp или Inkscape
  • Попросить автора темы добавить нужные значки

Так как Evolvere достаточно качественный набор и с большим количеством иконок, то разумней будет просто создать символьные ссылки на нужные иконки. Вы можете это сделать через Dolphin (ПКМ-Создать-Символическую ссылку) или Терминал.  Приведу пример для создания символьной ссылки через Терминал:
# переходим в директорию иконок приложений
cd /usr/share/icons/evolvere/apps/64/
# смотрим имена файлов
ls
# создаем символьную ссылку для qutim
sudo ln -s empathy.svg qutim.svg
# создаем символьную ссылку для teamviewer
sudo ln -s team-viewer.svg teamviewer.svg
# создаем символьную ссылку для qbittorrent
sudo ln -s ktorrent.svg qbittorrent.svg
Когда ссылки создались, нужно применить тему заново и тогда мы увидим результат.


Надеюсь вы поняли, как добавить нужную иконку для приложения.
Теперь перейдем к более сложному варианту, а именно добавление иконок в само приложение. Т.е. добавим иконки действий (actions). Возьмем к примеру плеер Clementine, запустим его и глянем.


Сразу видно, что некоторых иконок не хватает. Но где же их брать, ведь desktop-файла для них не существует? В исходниках - отвечу я вам. Да, это очень кропотливое и нудное занятие, но результатом вы потом будете довольны )))
И так, скачиваем исходники Clementine и распаковываем в любой удобный каталог. Изучаем содержимое каталогов с исходниками и натыкаемся на нужные нам иконки, а именно

  • edit-clear-list
  • multimedia-player-ipod-mini-blue
  • view-media-lyrics
  • view-media-playlist
  • x-clementine-artist
  • и т.д.

Теперь когда мы узнали имена иконок, добавим нужные нам в /usr/share/icons/evolvere/actions/22/ по такому же принципу, как мы и поступали с иконками приложений, а точнее создадим символные ссылки. И взглянем на результат перезапустив программу.


Конечно, не всегда иконки доступны в исходниках в виде значков. Иногда просто указываются имена в коде исходников. Все зависит от разработчика, самой программы и ее интеграции с рабочим окружением. Замечу, что обычно в QT-приложениях добавляют иконки, а не прописывают имена в коде, потому что многие программы являются кроссплатформенными.

Комментариев нет:

Отправить комментарий