Как объединить два набора иконок?

Я хочу объединить стандартный набор иконок Ubuntu Mono и набор иконок Faenza. Я хотел бы сохранить стандартные значки Ubuntu на панели (включая значки для Dropbox, передачи файлов и т. Д.) И заменить все другие значки приложений версиями Faenza.

Как бы я поступил об этом?

14
задан 1 March 2011 в 19:09

2 ответа

Отредактируйте этот файл ниже с вашим любимым текстовым редактором

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

и поместите Faenza в начале строки наследования.

0
ответ дан 1 March 2011 в 19:09

Я думаю, что лучший способ объединить наборы значков - создать то, что я называю облегченным набором значков. Этот набор значков находится в вашем домашнем каталоге, поэтому он не будет засорен системными обновлениями, но он ссылается на наборы системных значков, поэтому он будет обновляться вместе с ними. Эти темы не будут доступны другим пользователям в вашей системе.

Облегченные наборы значков

Менеджер тем в 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

Теперь у нас есть новый набор значков в Appearance, который в точности похож на Faenza-Darkest .

Чтобы объединить наши две темы, мы изменили тему супер-моно, чтобы наследовать от ubuntu-mono-dark и затем Faenza.

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

Этого должно быть достаточно для Ричзиллы, просто выберите супер-моно в «Появлении».

Добавление пользовательских значков

Мы также можем добавить отдельные значки в этот набор значков:

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

И теперь наша тема супер-моно сочетает в себе ubuntu-mono-dark и Faenza, кроме него использует одну иконку от Faenza-Darkest. Смотрите более поздние разделы, чтобы использовать больше, чем просто несколько значков.

1142 Важно видеть, что я скопировал index.theme из Faenza-Darkest, а затем использовал иконки из Faenza-Darkest. Файл index.theme сообщает, где могут быть иконки. Если вы хотите извлечь отдельные значки из разных наборов значков, вам нужно объединить их файлы index.theme. Вы можете посмотреть на файлы, и вы увидите поле под названием Каталоги, в котором перечислены все папки, содержащие значки. Затем вы увидите другие поля, которые описывают эти папки. Если вы добавите значок, который не описан в этих полях, этот значок будет игнорироваться. Вы можете найти больше информации в спецификации индекса .

Дополнительно: выборочное комбинирование трех наборов иконок.

Мне также нравятся иконки ubuntu-mono. Мне нравятся иконки приложений Faenza, , но Мне не нравятся моно иконки Faenza (индикаторы и кнопки). Мне также нравятся начальные иконки. Поэтому я хочу объединить эти три набора иконок. Насколько я знаю, лучший способ сделать это - выделить значки, которые вам нравятся.

  1. Использовать ubuntu-mono-dark
  2. Использовать значки приложений Faenza
  3. В противном случае использовать значки элементарных

Для этого нам нужно сказать Ubuntu -mono-dark, чтобы не наследовать от чего-либо (поэтому мы также можем использовать Faenza и элементарные).

# 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

Теперь у нас должна быть возможность выбрать merge-mono-dark в Appearance, и у нас будет новый красивый набор иконок! (Примечание: нам не нужно объединять файлы index.theme, потому что мы не добавляем значки из разных наборов значков в merge-mono-dark. Вместо этого мы используем Inherits для автоматического объединения значков.)


Объяснение некоторых команд

Я использую много команд терминала для упрощения этого ответа, но вот описание того, что они делают.

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

Это создает указатель в вашем наборе значков на значок gtk-paste набора значков системы. Таким образом, дополнительное пространство на жестком диске не используется, и ваш набор значков обновляется вместе с набором значков системы. Если вы не хотите этого, замените ln -s на cp -r.

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

Означает заменить все dark на light в ~ / file.

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 Вы можете редактировать файл и применять изменения вручную.

0
ответ дан 1 March 2011 в 19:09

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

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