Google Chrome a récemment été mis à niveau vers la version 35.0.1916.114 sur mon installation Ubuntu 14.04.
Depuis lors, l'icône de notification a commencé à apparaître sur la barre d'état système. Cependant, il semble qu'il utilise une icône de faible résolution - il semble déformé:
Comment puis-je le réparer / le remplacer?
google-chrome
icons
notification
fabiomaia
la source
la source
/usr/share/icons
, si cela vous aide/opt
- être ? C'est là que les binaires Google sont installés.catfish
par exemple, ou d'autres méthodes vous permettant de rechercher sur tout le disque.Réponses:
Modifier: voir ci-dessous pour une mise à jour sur le remplacement de l'icône de notification
Si vos binaires chrome sont installés à l'emplacement typique, vous les trouverez dans
/opt/google/chrome
. Dans ce dossier, vous devriez trouver le fichierchrome_100_percent.pak
qui contient l'icône de notification. Voici les étapes que j'ai utilisées pour l'extraire, en utilisant les informations de cette question de débordement de pile :Extraire le code du projet grit-i18n avec
svn checkout http://grit-i18n.googlecode.com/svn/trunk/ grit-i18n-read-only
Cela vous donnera un dossier dans votre CWD appelé
grit-i18n-read-only
. CD dans ce dossiercd grit-i18n-read-only
Copiez le module python data_pack dans ce dossier
cp grit/format/data_pack.py .
Modifiez
data_pack.py
dans votre éditeur préféré. Après les importations initiales, ajoutez la ligne suivante:sys.path.append(os.getcwd())
Vers la fin du fichier dans la
main
fonction, supprimez la ligneprint '%s: %s' % (resource_id, text)
(La réponse Stack Overflow indique que cela se produit à la ligne 160, d'après mon expérience, la version actuelle l'a à la ligne 201)
À sa place, insérez les lignes suivantes en retrait de manière appropriée (3 fois):
file = open(str(resource_id), "wb")
file.write(text)
Exécutez l'
data_pack.py
utilitaire sur le fichier chrome pak (je l'ai d'abord copié dans legrit-i18n-read-only
dossier):./data_pack.py ../chrome_100_percent.pak
Cela se traduira par de nombreux nouveaux fichiers dans le répertoire actuel, tous nommés sous forme de numéros sans extension. Votre navigateur de fichiers (par exemple nautilus) devrait être en mesure de déterminer les types de fichiers et d'afficher les vignettes des images. J'ai trouvé les icônes de notification nommées 6866 et 6867.
Éditer
Bien qu'il existe des réponses plus simples ci-dessous, j'ai réussi à pirater ensemble du code pour reconditionner les ressources que vous pourriez essayer après avoir modifié les icônes. Cela produirait un nouveau
.pak
fichier, que je n'ai pas essayé d'utiliser moi-même, donc je ne peux pas dire avec certitude que cela entraînerait avec succès de nouvelles icônes de notification.Dans la fonction principale de
data_pack.py
, j'ai commenté tout le code duelse
bloc et ajouté les lignes suivantes:Ensuite, lancez-vous
./data_pack.py
. Cela suppose qu'il sechrome_100_percent.pak
trouve dans le répertoire courant et devrait vous donner un nouveauchrome_100_percent_new.pak
fichier que vous pourriez essayer de copier/opt/google/chrome/chrome_100_percent.pak
.Je crois que quelques icônes supplémentaires dans le paquet de ressources liées à l'icône de notification ont été identifiées; la modification de ce qui précède pour les inclure devrait être assez simple.
Édition finale
Maintenant que je suis de retour à la maison et que j'ai eu la chance de travailler davantage, j'ai réussi à remplacer l'icône de notification de Chrome. Comme l'a noté @Glutanimate, vous êtes coincé avec une résolution 16x16, donc je ne sais pas quelle amélioration vous pouvez réellement obtenir, mais je suppose que c'est subjectif.
J'ai simplement ouvert les icônes susmentionnées (6864 - 6867) dans GIMP, qui les ont détectées en tant que PNG en niveaux de gris. J'ai collé une nouvelle icône dans le même fichier dans GIMP, essayant ainsi de conserver les mêmes propriétés d'image (par exemple en niveaux de gris). J'ai ensuite exporté ces fichiers au format PNG, décochant TOUTES les options proposées par GIMP mais en conservant un niveau de compression de 9. Les fichiers résultants avaient des extensions .png, j'ai donc supprimé celles-ci et remplacé les originaux. J'ai ensuite relancé
data_pack.py
, après avoir déjà effectué les modifications détaillées ci-dessus.J'ai gardé une copie de sauvegarde du
mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bak
paquet d' origine avec et déplacé mon fichier .pak modifié à sa place. Je m'assurerais que Chrome est fermé lors de cette opération, et je vérifie qu'aucun processus Chrome n'est en cours d'exécution, et je crois que Chrome a un nouveau paramètre pour autoriser les processus d'arrière-plan même lorsque le navigateur est fermé par défaut maintenant.Et voilà, mes icônes de notification dans Unity reflètent mes modifications.
Final-Final Edit: OK, j'ai menti - j'ai essayé un PNG 32x32 et cela semble avoir très bien fonctionné. Alors voilà. Voici quelques captures d'écran des résultats.
(Source: icônes de lot d'Adam Whitcroft)
la source
Éditer:
On dirait que le problème était avec
node-chrome-pak
. La modification de rocketman10404data_pack.py
fonctionne très bien, même avec des icônes 32px:Veuillez utiliser ses instructions à la place.
Réponse originale :
L'excellente réponse de @ rocketman10404 m'a conduit à node-chrome-pak , un script node.js qui peut compresser, décompresser et remplacer des ressources spécifiques dans les
.pak
fichiers de Chrome / ium .Bien que j'aie réussi à remplacer les icônes de notification
chrome_100_percent.pak
avec cet outil, je dois signaler que je n'ai pas pu rendre les modifications visibles. Je pense que cela vaut la peine de décrire les mesures que j'ai prises pour obtenir ce point. J'espère que quelqu'un d'autre s'en occupera et trouvera un moyen de le faire fonctionner.Installation de node.js
node-chrome-pak
aura besoin de node.js pour fonctionner. Vous pouvez installer la dernière version en ajoutant le PPA nodejs de Chris Lea:Télécharger le script et décompresser les ressources de Chrome
Téléchargez le script:
Copiez votre local
chrome_100_percent.pak
sur:Décompressez le
.pak
fichier:Identification et modification des icônes de notification
La dernière action aura créé un nouveau dossier appelé
./extracted
. Vous y trouverez toutes les ressources contenues dans le fichier pak. Ils sont nommés d'après leur ID de ressource. Vous souhaiterez conserver ce nom car il est important pour reconditionner les fichiers.La partie difficile consiste maintenant à identifier les icônes correctes. Si je ne me trompe pas complètement, les fichiers suivants doivent être ceux utilisés dans le systray:
Après avoir identifié les icônes que vous cherchiez, vous pouvez procéder à leur modification et leur remplacement. Si vous le souhaitez, vous pouvez utiliser les icônes que j'ai créées à cet effet:
Les fichiers source et les
.png
s exportés dans différentes résolutions sont hébergés sur GitHub .Voici la première limitation que j'ai trouvée: Si vous remplacez les icônes par une image dans une résolution supérieure à celle de Google Chrome d'origine, elle sera corrompue et cessera de fonctionner correctement . Pour ce projet particulier, vous devrez rester avec une résolution 16x16. En effet, cela signifie que vous ne pourriez pas améliorer de manière significative les icônes de la barre d'état système actuelle, même si vous deviez faire fonctionner cette méthode.
Bien sûr, il est possible que cette limitation ait été introduite par la façon dont a
node-chrome-pak
été conçu. Il peut être possible de remplacer les icônes par des icônes plus grandes si vous créez un script python personnalisé basé sur la réponse de @ rocketman10404.Reconditionnement des ressources et remplacement des ressources existantes
Après avoir modifié / remplacé les icônes existantes, vous devrez créer un
pak
fichier mis à jour ...... et utilisez-le pour remplacer celui existant:
Le cœur de cette méthode
Dans mes tentatives, je n'ai pas réussi à faire afficher à Chrome les icônes mises à jour. Même si je m'assurais que toutes les icônes étaient remplacées correctement et réellement présentes dans le
pak
fichier modifié (en le déballant à nouveau), je ne pouvais toujours pas remplacer l'icône réelle dans la barre d'état système.Malheureusement, je n'ai aucune idée pourquoi.
la source