Como mesclar dois conjuntos de ícones?

14

Quero mesclar o conjunto de ícones padrão do Ubuntu Mono e o conjunto de ícones do Faenza. Gostaria de manter os ícones padrão do Ubuntu no painel (incluindo ícones do Dropbox, transferências de arquivos etc.) e substituir todos os outros ícones de aplicativos pelas versões do Faenza.

Como eu iria fazer isso?

richzilla
fonte

Respostas:

3

Edite este arquivo abaixo com seu editor de texto favorito

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

e coloque Faenza no início da linha de herança.

Vallery
fonte
2
Você deve evitar modificar arquivos do sistema. Uma atualização para o ubuntu-mono reverterá sua alteração.
Idbrii
12

Acho que a melhor maneira de mesclar conjuntos de ícones é criar o que chamo de conjunto leve de ícones. Esse conjunto de ícones fica no diretório inicial para que não seja prejudicado pelas atualizações do sistema, mas vincula-se aos conjuntos de ícones do sistema e, portanto, é atualizado junto com eles. Esses temas não estarão disponíveis para outros usuários no seu sistema.

Conjuntos de ícones leves

O gerenciador de temas do Ubuntu procurará dentro ~/.iconse /usr/share/iconspor conjuntos de ícones. Qualquer coisa ~/.iconssubstituída /usr/share/icons.Para que você possa copiar um conjunto de ícones do diretório do sistema para o diretório inicial para personalizar o ícone e incluir apenas as partes que deseja alterar!

Geralmente, acho melhor fazer seus próprios conjuntos de ícones que usam os do sistema. Você pode fazer isso criando um conjunto de ícones, um arquivo index.theme e adicionando alguns ícones. No entanto, quando você estiver combinando conjuntos de ícones diferentes, será necessário substituir o Inheritsatributo para poder definir sua própria ordem de precedência.

Criando um conjunto de ícones para mesclar temas

Vamos criar um conjunto de ícones super mono:

# 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

Agora, temos um novo ícone definido em Aparência, exatamente igual ao Faenza-Darkest.

Para mesclar nossos dois temas, alteramos o tema super-mono para herdar do ubuntu-mono-dark e, em seguida, do Faenza.

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

Isso deve ser suficiente para o richzilla, basta selecionar super-mono em Aparência.

Adicionando ícones personalizados

Também podemos adicionar ícones individuais a este conjunto de ícones:

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

E agora nosso tema super-mono combina ubuntu-mono-dark e Faenza, exceto que ele usa um ícone do Faenza-Darkest. Consulte as seções posteriores para usar mais do que apenas alguns ícones.

É importante ver que copiei o índice.theme do Faenza-Darkest e depois usei ícones do Faenza-Darkest. O arquivo index.theme diz onde os ícones podem estar. Se você deseja extrair ícones individuais de diferentes conjuntos de ícones, precisará mesclar os arquivos index.theme. Você pode ver os arquivos e verá um campo chamado Diretórios que lista todas as pastas que contêm ícones. Você verá outros campos que descrevem essas pastas. Se você adicionar um ícone que não seja descrito por esses campos, esse ícone será ignorado. Você pode encontrar mais informações na especificação index.theme .

Avançado: combinando seletivamente três conjuntos de ícones

Eu também amo ícones ubuntu-mono. Adoro os ícones de aplicativos do Faenza, mas não gosto dos ícones mono do Faenza (os indicadores e botões). Eu também gosto dos ícones do ensino fundamental. Então, eu quero combinar esses três conjuntos de ícones. Até onde eu sei, a melhor maneira de fazer isso é isolando os ícones que você gosta.

  1. Use o ubuntu-mono-dark
  2. Use os ícones do aplicativo Faenza
  3. Caso contrário, use os ícones do elementary

Para fazer isso, precisamos dizer ao ubuntu-mono-dark para não herdar nada (para que também possamos usar o Faenza e o elementar).

# 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

Você notará que o conjunto de ícones do ubuntu-mono-dark agora está quebrado. Faltam ícones fornecidos pelo Humanity-Dark e outros conjuntos de ícones dos quais herda. Essa alteração afetará apenas seu usuário.

Agora podemos criar um novo conjunto de ícones que usa os ícones de aplicativos da 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/.

Este conjunto de ícones do Faenza-apps também está quebrado. Possui apenas ícones para aplicativos. Todos os outros ícones estão ausentes porque removemos o Inherits.

Agora criamos o conjunto de ícones que usaremos. Nosso conjunto de ícones não conterá ícones, apenas conectará nossos outros conjuntos de ícones.

# 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

Agora poderemos selecionar mesclar-mono-escuro em Aparência e teremos um novo conjunto de ícones bonito! (Observação: não precisamos mesclar arquivos index.theme porque não estamos adicionando ícones de conjuntos de ícones diferentes para mesclar-mono-dark. Em vez disso, estamos usando o Inherits para mesclar automaticamente os conjuntos de ícones.)


Explicação de alguns comandos

Eu uso muitos comandos do Terminal para simplificar esta resposta, mas aqui está uma descrição do que eles fazem.

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

Isso cria um ponteiro no conjunto de ícones para o ícone gtk-paste do conjunto de ícones do sistema. Dessa forma, nenhum espaço adicional no disco rígido é usado e seu conjunto de ícones é atualizado junto com o conjunto de ícones do sistema. Se você não quiser isso, substitua ln -spor cp -r.

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

Significa substituir tudo darkpor lightem ~ / file.

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

Os .*$meios para combinar qualquer texto (. *) Até o final da linha ($).

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

Aqui estamos inserindo ubuntu-mono-dark na frente da lista Inherits porque estamos procurando Inherits=e substituindo-o porInherits=ubuntu-mono-dark,

Em qualquer lugar que eu use sed, você poderá editar o arquivo e aplicar edições manualmente.

idbrii
fonte
1
<sarcasm> Não tenho certeza se este post é detalhado o suficiente pydave </sarcasm> com toda a seriedade, ótima resposta. Na verdade, tive um problema semelhante com o ícone Clementines que isso resolve.
Zookalicious