O Google Chrome foi atualizado recentemente para a versão 35.0.1916.114 na minha instalação do Ubuntu 14.04.
Desde então, o ícone de notificação começou a aparecer na bandeja do sistema. No entanto, parece que está usando um ícone de baixa resolução - parece distorcido:
Como posso corrigir / substituir?
google-chrome
icons
notification
fabiomaia
fonte
fonte
/usr/share/icons
, se isso ajuda/opt
? É aí que os binários do Google estão instalados.catfish
por exemplo, ou outros métodos que permitem pesquisar em todo o disco.Respostas:
Editar: veja abaixo a atualização sobre a substituição do ícone de notificação
Se os binários cromados estiverem instalados no local típico, você os encontrará em
/opt/google/chrome
. Nessa pasta, você deve encontrar o arquivochrome_100_percent.pak
que contém o ícone de notificação. Aqui estão as etapas que eu usei para extraí-lo, usando as informações desta pergunta de estouro de pilha :Faça o checkout do código para o projeto grit-i18n com
svn checkout http://grit-i18n.googlecode.com/svn/trunk/ grit-i18n-read-only
Isso fornecerá uma pasta no seu CWD chamada
grit-i18n-read-only
. CD nesta pastacd grit-i18n-read-only
Copie o módulo python data_pack para esta pasta
cp grit/format/data_pack.py .
Edite
data_pack.py
no seu editor preferido. Após as importações iniciais, adicione a seguinte linha:sys.path.append(os.getcwd())
No final do arquivo na
main
função, remova a linhaprint '%s: %s' % (resource_id, text)
(a resposta Stack Overflow afirma que isso ocorre na linha 160, na minha experiência, a versão atual está na linha 201)
Em seu lugar, insira as seguintes linhas recuadas adequadamente (3 vezes):
file = open(str(resource_id), "wb")
file.write(text)
Execute o
data_pack.py
utilitário no arquivo chrome pak (copiei-ogrit-i18n-read-only
primeiro na pasta):./data_pack.py ../chrome_100_percent.pak
Isso resultará em muitos arquivos novos no diretório atual, todos nomeados como números sem extensão. Seu navegador de arquivos (por exemplo, nautilus) deve ser capaz de determinar os tipos de arquivo e mostrar as miniaturas das imagens. Encontrei os ícones de notificação denominados 6866 e 6867.
Editar
Embora haja algumas respostas mais simples abaixo, eu consegui hackear algum código para reorganizar os recursos que você poderia tentar após editar os ícones. Isso produziria um novo
.pak
arquivo, que eu ainda não tentei usar, então não posso afirmar com certeza que isso resultaria em novos ícones de notificação.Na função principal in
data_pack.py
, comentei todo o código doelse
bloco e adicionei as seguintes linhas:Então, apenas corra
./data_pack.py
. Isso pressupõe quechrome_100_percent.pak
está no diretório atual e deve fornecer um novochrome_100_percent_new.pak
arquivo para o qual você pode tentar copiar/opt/google/chrome/chrome_100_percent.pak
.Acredito que alguns ícones adicionais no pacote de recursos relacionados ao ícone de notificação foram identificados; editar o acima para incluir esses itens deve ser bem direto.
Edição final
Agora que voltei para casa e tive a chance de trabalhar um pouco mais nisso, consegui substituir com sucesso o ícone de notificação do chrome. Como o @Glutanimate observou, você está preso com uma resolução de 16x16, então não tenho certeza de quantas melhorias você pode realmente alcançar, mas suponho que seja subjetivo.
Eu simplesmente abri os ícones mencionados acima (6864 - 6867) no GIMP, que os detectaram como PNGs em escala de cinza. Colei um novo ícone no mesmo arquivo no GIMP, tentando manter as mesmas propriedades de imagem (por exemplo, escala de cinza). Eu os exportei como PNGs, desmarcando TODAS as opções que o GIMP oferece, mas mantendo um nível de compactação de 9. Os arquivos resultantes tinham extensões .png, então os removi e substitui os originais. Voltei a executar
data_pack.py
, já tendo feito as modificações detalhadas acima.Eu mantive uma cópia de backup do pak original
mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bak
e movi meu arquivo .pak modificado em seu lugar. Eu garantiria que o chrome estivesse fechado ao fazer isso e verifique novamente se não há processos do chrome em execução, e acredito que o chrome tenha uma nova configuração para permitir processos em segundo plano, mesmo quando o navegador estiver fechado por padrão agora.Eis que meus ícones de notificação no Unity refletem minhas alterações.
Edição finalmente final: OK, eu menti - tentei um PNG 32x32 e parece ter funcionado muito bem. Então, lá vai você. Aqui estão algumas capturas de tela de resultados.
(Fonte: Ícones de lote de Adam Whitcroft)
fonte
Editar:
Parece que o problema estava com
node-chrome-pak
. O rocketman10404 modificadodata_pack.py
está funcionando bem, mesmo com ícones de 32px:Por favor, use as instruções dele .
Resposta original :
A excelente resposta de @ rocketman10404 me levou ao node-chrome-pak , um script node.js que pode compactar, descompactar e substituir recursos específicos nos
.pak
arquivos do Chrome / ium .Embora eu tenha conseguido substituir os ícones de notificação
chrome_100_percent.pak
por essa ferramenta, tenho que informar que não foi possível tornar as alterações visíveis. Ainda acho que vale a pena se esforçar para descrever os passos que tomei para chegar a esse ponto. Espero que alguém aceite isso e encontre uma maneira de fazê-lo funcionar.Instalando o node.js
node-chrome-pak
precisará do node.js para executar. Você pode instalar a versão mais recente adicionando o PPA nodejs de Chris Lea:Fazendo o download do script e descompactando os recursos do Chrome
Faça o download do script:
Copie seu local
chrome_100_percent.pak
:Descompacte o
.pak
arquivo:Identificando e Modificando os Ícones de Notificação
A última ação terá criado uma nova pasta chamada
./extracted
. Nele, você encontrará todos os recursos contidos no arquivo pak. Eles são nomeados após o ID do recurso. Você deseja preservar esse nome, pois é importante reembalar os arquivos.A parte difícil agora está na identificação dos ícones corretos. Se não me engano completamente, os seguintes arquivos devem ser os usados na bandeja do sistema:
Depois de identificar os ícones que você estava procurando, você pode modificá-los e substituí-los. Se você quiser, pode usar os ícones que eu criei para esse fim:
Os arquivos de origem e os exportados
.png
em diferentes resoluções estão hospedados no GitHub .Aí vem a primeira limitação que encontrei: Se você substituir os ícones por uma imagem em qualquer resolução superior ao Google Chrome original, ela será corrompida e deixará de funcionar corretamente . Para este projeto em particular, você terá que ficar com uma resolução de 16x16. Com efeito, isso significa que você não seria capaz de melhorar significativamente os ícones atuais da bandeja, mesmo que esse método funcionasse.
Claro que há a possibilidade de que essa limitação tenha sido introduzida pela maneira como
node-chrome-pak
foi projetada. Talvez seja possível substituir os ícones por outros maiores, se você criar um script python personalizado com base na resposta de @ rocketman10404.Reempacotando os recursos e substituindo os existentes
Após modificar / substituir os ícones existentes, você precisará criar um
pak
arquivo atualizado ...... e use-o para substituir o existente:
O cerne deste método
Nas minhas tentativas, não consegui fazer o Chrome mostrar os ícones atualizados. Mesmo se eu certificasse que todos os ícones fossem substituídos corretamente e realmente estivessem presentes no
pak
arquivo modificado (descompactando-o novamente), ainda não consegui substituir o ícone real na bandeja do sistema.Infelizmente não tenho ideia do porquê disso.
fonte