Як злити два набори іконок?


14

Я хочу об'єднати стандартний набір іконок Ubuntu Mono і набір іконок Faenza. Я хотів би зберегти стандартні піктограми Ubuntu на панелі (включаючи піктограми на зразок Dropbox, передачі файлів тощо) та замінити всі інші значки програм на версії Faenza.

Як би я пішов про це?

Відповіді:


3

Відредагуйте цей файл нижче за допомогою улюбленого текстового редактора

/usr/share/icons/ubuntu-mono-(which mono set you want)/index.theme

і поставити Фаензу на початку лінії спадкування.


2
Вам слід уникати зміни системних файлів. Оновлення ubuntu-mono відновить зміни.
idbrii

12

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

Легкі набори значків

Тема менеджер Ubuntu буде виглядати в ~/.iconsі /usr/share/iconsдля іконок наборів. Що-небудь із ~/.iconsпереопределеннями. /usr/share/icons.Отже, ви можете скопіювати набір іконок із системного режиму до вашого домашнього режиму, щоб налаштувати значок, і ви включаєте лише ті частини, які ви хочете змінити!

Взагалі, я думаю, що найкраще робити власні набори іконок, які використовують системні. Це можна зробити, створивши набір іконок, файл index.theme та додавши деякі піктограми. Однак, комбінуючи різні набори значків, вам потрібно буде замінити їх Inheritsатрибут, щоб ви могли встановити свій власний порядок пріоритетності.

Створення іконок для об'єднання тем

Давайте створимо супермоно набір іконок:

# Create a new icon set
mkdir -p ~/.icons/super-mono

# Copy an existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza-Darkest/index.theme      ~/.icons/super-mono/.
sed -ie "s/Name=Faenza-Darkest/Name=super-mono/"    ~/.icons/super-mono/index.theme
sed -ie "s/Comment=.*$/Comment=Created with by me/" ~/.icons/super-mono/index.theme
sed -ie "s/Inherits=/Inherits=ubuntu-mono-dark,/"   ~/.icons/super-mono/index.theme

Зараз у нас з’явився новий набір піктограм у зовнішності, який точно нагадує Фаензу-Даркест.

Щоб об'єднати наші дві теми, ми змінимо супермоно тему, щоб успадкувати від ubuntu-mono-dark, а потім Faenza.

sed -ie "s/Inherits=.*$/Inherits=ubuntu-mono-dark,Faenza/" ~/.icons/super-mono/index.theme

Цього має бути достатньо для Richzilla, просто виберіть супермоно в зовнішності.

Додавання користувацьких значків

До цього набору значків можна також додати окремі значки:

ln -s /usr/share/icons/Faenza-Darkest/actions/22/gtk-paste.png ~/.icons/super-mono/actions/22/.

І тепер наша супермоно-тема поєднує ubuntu-mono-dark та Faenza, за винятком того, що вона використовує одну піктограму від Faenza-Darkest. Дивіться пізніші розділи, щоб використовувати більше ніж декілька піктограм.

Важливо бачити, що я скопіював index.theme з Faenza-Darkest, а потім використовував іконки з Faenza-Darkest. Файл index.theme вказує, де можуть бути значки. Якщо ви хочете витягнути окремі піктограми з різних наборів іконок, вам потрібно об’єднати їх файли index.theme. Ви можете переглянути файли, і ви побачите поле під назвою Каталоги, в якому перераховані всі папки, що містять піктограми. Потім ви побачите інші поля, що описують ці папки. Якщо ви додасте піктограму, яка не описана в цих полях, вона буде ігнорована. Додаткову інформацію можна знайти в специфікації index.theme .

Розширено: вибіркове поєднання трьох наборів значків

Я також люблю іконки ubuntu-mono. Я люблю піктограми додатків Faenza, але мені не подобаються моно піктограми Faenza (індикатори та кнопки). Мені також подобаються ікони елементарного. Тому я хочу поєднати ці три набори іконок. Наскільки я знаю, найкращий спосіб це зробити, виділивши потрібні вам значки.

  1. Використовуйте ubuntu-mono-dark
  2. Використовуйте піктограми програми Faenza
  3. В іншому випадку використовуйте піктограми елементарних

Для цього нам потрібно сказати ubuntu-mono-dark, щоб нічого не успадковувати (тому ми також можемо використовувати Фаензу та елементарне).

# First, ubuntu-mono-dark
# Create a shadow of the system icon set
mkdir -p ~/.icons/ubuntu-mono-dark

# Copy an existing icon config and modify it for our shadow icon set
cp /usr/share/icons/ubuntu-mono-dark/index.theme   ~/.icons/ubuntu-mono-dark/.
sed -ie "s/Comment=.*$/Comment=A shadow to prevent inherits/" ~/.icons/ubuntu-mono-dark/index.theme
sed -ie "s/Inherits=.*$/Inherits=/"                ~/.icons/ubuntu-mono-dark/index.theme

Ви помітите, що набір значків ubuntu-mono-dark вже порушений. У ньому будуть відсутні піктограми, які надає Humanity-Dark та інші набори іконок, від яких він успадковує. Ця зміна торкнеться лише вашого користувача.

Тепер ми можемо зробити новий набір іконок, який використовує піктограми додатків від Faenza.

# Create a new icon set
mkdir -p ~/.icons/Faenza-apps

# Copy the existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza/index.theme             ~/.icons/Faenza-apps/.
sed -ie "s/Name=Faenza/Name=Faenza-apps/"          ~/.icons/Faenza-apps/index.theme
sed -ie "s/Comment=.*$/Comment=Just Faenza app icons/" ~/.icons/Faenza-apps/index.theme
sed -ie "s/Inherits=.*$/Inherits=/"                ~/.icons/Faenza-apps/index.theme

# Use Faenza's app icons
ln -s /usr/share/icons/Faenza/apps/ ~/.icons/Faenza-apps/.

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

Тепер ми створюємо набір іконок, який ми будемо використовувати. Наш набір іконок не буде містити піктограм, він просто з'єднує наші інші набори іконок.

# Create a new icon set
mkdir -p ~/.icons/merge-mono-dark

# Copy an existing icon config and modify it for our new icon set
cp /usr/share/icons/Faenza/index.theme                 ~/.icons/merge-mono-dark/.
sed -ie "s/Name=Faenza/Name=merge-mono-dark/"          ~/.icons/merge-mono-dark/index.theme
sed -ie "s/Comment=.*$/Comment=Created with by me/"    ~/.icons/merge-mono-dark/index.theme
sed -ie "s/Inherits=.*$/Inherits=ubuntu-mono-dark,Faenza-apps,elementary-mono-dark/" ~/.icons/merge-mono-dark/index.theme

Тепер ми повинні мати можливість вибрати злиття-моно-темне у зовнішньому вигляді, і у нас буде новий гарний набір іконок! (Примітка. Нам не потрібно зливати файли index.theme, тому що ми не додаємо піктограми з різних наборів іконок для об'єднання моно-темних. Натомість ми використовуємо Inherits для автоматичного злиття наборів іконок.)


Пояснення деяких команд

Я використовую безліч команд Terminal для спрощення цієї відповіді, але ось опис того, що вони роблять.

ln -s /usr/share/icons/Faenza-Darkest/actions/22/gtk-paste.png ~/.icons/Faenza-Alan/actions/22/.

Це створює вказівник у вашому значку, встановленому на значку gtk-вставлення набору значків системи. Таким чином, не використовується додатковий простір на жорсткому диску, і ваш набір іконок оновлюється разом із набором значків системи. Якщо ви цього не хочете, замініть ln -sна cp -r.

sed -ie "s/dark/light/" ~/file

Значить , щоб замінити всі darkз lightв ~ / файл.

sed -ie "s/Comment=.*$/Comment=Created with by me/" ~/.icons/super-mono/index.theme

Засіб .*$для зіставлення будь-якого тексту (. *) До кінця рядка ($).

sed -ie "s/Inherits=/Inherits=ubuntu-mono-dark,/"   ~/.icons/super-mono/index.theme

Тут ми вставляємо ubuntu-mono-dark перед списком Inherits, тому що ми шукаємо Inherits=і замінюємо йогоInherits=ubuntu-mono-dark,

Де б я не користувався sed, ви можете редагувати файл і застосовувати зміни вручну.


1
<sarcasm> Я не впевнений, що ця публікація є досить детальною pydave </sarcasm> всерйоз, хоча, чудова відповідь. Насправді у мене була подібна проблема з Clementines icon, що це вирішує.
зоокалікій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.