Google Chrome se actualizó recientemente a la versión 35.0.1916.114 en mi instalación de Ubuntu 14.04.
Desde entonces, el icono de notificación ha comenzado a aparecer en la bandeja del sistema. Sin embargo, parece que está usando un ícono de baja resolución; parece distorsionado:
¿Cómo puedo arreglarlo / reemplazarlo?
google-chrome
icons
notification
fabiomaia
fuente
fuente
/usr/share/icons
, si eso ayuda/opt
? Ahí es donde están instalados los binarios de google.catfish
por ejemplo, u otros métodos que le permitan buscar en todo el disco.Respuestas:
Editar: consulte a continuación la actualización sobre el reemplazo del icono de notificación
Si sus binarios de Chrome están instalados en la ubicación típica, los encontrará en
/opt/google/chrome
. En esa carpeta, debe encontrar el archivochrome_100_percent.pak
que contiene el icono de notificación. Estos son los pasos que utilicé para extraerlo, utilizando la información de esta pregunta de desbordamiento de pila :Verifique el código del proyecto grit-i18n con
svn checkout http://grit-i18n.googlecode.com/svn/trunk/ grit-i18n-read-only
Esto le dará una carpeta en su CWD llamada
grit-i18n-read-only
. CD en esta carpetacd grit-i18n-read-only
Copie el módulo de python data_pack a esta carpeta
cp grit/format/data_pack.py .
Edite
data_pack.py
en su editor preferido. Después de las importaciones iniciales, agregue la siguiente línea:sys.path.append(os.getcwd())
Hacia el final del archivo en la
main
función, elimine la líneaprint '%s: %s' % (resource_id, text)
(la respuesta de desbordamiento de pila indica que esto ocurre en la línea 160, en mi experiencia, la versión actual lo tiene en la línea 201)
En su lugar, inserte las siguientes líneas sangradas apropiadamente (3 veces):
file = open(str(resource_id), "wb")
file.write(text)
Ejecute la
data_pack.py
utilidad en el archivo chrome pak (lo copiégrit-i18n-read-only
primero en la carpeta):./data_pack.py ../chrome_100_percent.pak
Esto dará como resultado muchos archivos nuevos en el directorio actual, todos nombrados como números sin extensión. Su explorador de archivos (por ejemplo, nautilus) debería poder determinar los tipos de archivos y mostrar miniaturas de imágenes. Encontré los iconos de notificación nombrados como 6866 y 6867.
Editar
Si bien hay algunas respuestas más simples a continuación, logré hackear algunos códigos para volver a empaquetar los recursos que podrías intentar después de editar los íconos. Esto produciría un nuevo
.pak
archivo, que no he intentado usar yo mismo, por lo que no puedo decir con certeza que esto resulte exitosamente en nuevos iconos de notificación.En la función principal en
data_pack.py
, comenté todo el código en elelse
bloque y agregué las siguientes líneas:Entonces, solo corre
./data_pack.py
. Esto supone quechrome_100_percent.pak
está en el directorio actual y debería darle un nuevochrome_100_percent_new.pak
archivo que podría intentar copiar/opt/google/chrome/chrome_100_percent.pak
.Creo que se han identificado algunos íconos adicionales en el paquete de recursos relacionados con el ícono de notificación; editar lo anterior para incluirlos debería ser bastante sencillo.
Edición final
Ahora que estoy en casa y tuve la oportunidad de trabajar en esto un poco más, logré reemplazar con éxito el ícono de notificación de Chrome. Como señaló @Glutanimate, está atascado con una resolución de 16x16, por lo que no estoy seguro de cuánta mejora puede lograr realmente, pero supongo que es subjetivo.
Simplemente abrí los iconos antes mencionados (6864 - 6867) en GIMP, que los detectó como PNG en escala de grises. Pegué un nuevo icono en el mismo archivo en GIMP, intentando así mantener las mismas propiedades de imagen (por ejemplo, escala de grises). Luego los exporté como PNG, desmarcando TODAS las opciones que ofrece GIMP pero manteniendo un nivel de compresión de 9. Los archivos resultantes tenían extensiones .png, así que las eliminé y reemplacé las originales. Luego volví a correr
data_pack.py
, ya había hecho las modificaciones detalladas anteriormente.Mantuve una copia de seguridad del
mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bak
paquete original con y moví mi archivo .pak modificado en su lugar. Me aseguraría de que Chrome esté cerrado al hacer esto, y verifique dos veces que no hay procesos de Chrome en ejecución, y creo que Chrome tiene una nueva configuración para permitir procesos en segundo plano incluso cuando el navegador está cerrado de forma predeterminada ahora.He aquí que mis iconos de notificación en Unity reflejan mis cambios.
Finalmente-Edición final: OK, mentí - Intenté un PNG de 32x32 y parece haber funcionado bien. Ahí vas. Aquí algunas capturas de pantalla de resultados.
(Fuente: iconos de lote de Adam Whitcroft)
fuente
Editar:
Parece que el problema fue con
node-chrome-pak
. La modificación de rocketman10404data_pack.py
funciona bien, incluso con iconos de 32px:Por favor use sus instrucciones en su lugar.
Respuesta original :
La excelente respuesta de @ rocketman10404 me llevó a node-chrome-pak , un script de node.js que puede empaquetar, desempaquetar y reemplazar recursos específicos en los
.pak
archivos de Chrome / ium .Aunque logré reemplazar los íconos de notificación
chrome_100_percent.pak
con esta herramienta, debo informar que no pude hacer visibles los cambios. Aún así, creo que vale la pena resumir los pasos que tomé para llegar a este punto. Esperemos que alguien más tome esto y encuentre una manera de hacerlo funcionar.Instalar node.js
node-chrome-pak
necesitará node.js para ejecutarse. Puede instalar la última versión agregando el PPA nodejs de Chris Lea:Descargando el script y desempacando los recursos de Chrome
Descargar el guión:
Copie su local
chrome_100_percent.pak
sobre:Descomprima el
.pak
archivo:Identificar y modificar los íconos de notificación
La última acción habrá creado una nueva carpeta llamada
./extracted
. En él encontrará todos los recursos contenidos en el archivo pak. Se nombran después de su ID de recurso. Deberá conservar este nombre, ya que es importante para volver a empaquetar los archivos.La parte difícil ahora radica en identificar los íconos correctos. Si no estoy completamente equivocado, los siguientes archivos deberían ser los que se usan en la bandeja del sistema:
Una vez identificados los iconos que estaba buscando, puede proceder a modificarlos y reemplazarlos. Si lo desea, puede usar los iconos que creé para este propósito:
Los archivos de origen y los correos
.png
electrónicos exportados en diferentes resoluciones se alojan en GitHub .Aquí viene la primera limitación que encontré: si reemplaza los iconos con una imagen en una resolución superior a la original, Google Chrome se dañará y dejará de funcionar correctamente . Para este proyecto en particular, tendrá que quedarse con una resolución de 16x16. En efecto, esto significa que no podría mejorar significativamente los iconos de la bandeja del sistema actual, incluso si tuviera que hacer funcionar este método.
Por supuesto, existe la posibilidad de que esta limitación se introdujera por la forma en que
node-chrome-pak
fue diseñada. Es posible reemplazar los íconos por otros más grandes si crea un script de Python personalizado basado en la respuesta de @ rocketman10404.Reempaquetar los recursos y reemplazar los existentes.
Después de modificar / reemplazar los iconos existentes, tendrá que crear un
pak
archivo actualizado ...... y úsalo para reemplazar el existente:
El quid de este método
En mis intentos, no he podido hacer que Chrome muestre los íconos actualizados. Incluso si me aseguré de que todos los íconos se reemplazaran correctamente y realmente estuvieran presentes en el
pak
archivo modificado (al desempaquetarlo nuevamente) aún no podía reemplazar el ícono real en la bandeja del sistema.Lamentablemente no tengo idea de por qué es esto.
fuente