Google Chrome wurde kürzlich in meiner Ubuntu 14.04-Installation auf Version 35.0.1916.114 aktualisiert.
Seitdem wird das Benachrichtigungssymbol in der Taskleiste angezeigt. Es scheint jedoch, dass ein Symbol mit niedriger Auflösung verwendet wird - es sieht verzerrt aus:
Wie kann ich es reparieren / ersetzen?
google-chrome
icons
notification
fabiomaia
quelle
quelle
/usr/share/icons
, wenn das hilft/opt
? Hier werden die Google-Binärdateien installiert.catfish
beispielsweise "chrome" enthält , oder auf andere Arten, mit denen Sie die Suche auf der gesamten Festplatte durchführen können.Antworten:
Bearbeiten: Informationen zum Ersetzen des Benachrichtigungssymbols finden Sie weiter unten
Wenn Ihre Chrome-Binärdateien am typischen Speicherort installiert sind, finden Sie sie in
/opt/google/chrome
. In diesem Ordner sollte sich die Dateichrome_100_percent.pak
befinden, die das Benachrichtigungssymbol enthält. Hier sind die Schritte zum Extrahieren anhand der Informationen aus dieser Stapelüberlauf-Frage :Checke den Code zum grit-i18n Projekt mit
svn checkout http://grit-i18n.googlecode.com/svn/trunk/ grit-i18n-read-only
Dies gibt Ihnen einen Ordner in Ihrem CWD namens
grit-i18n-read-only
. CD in diesen Ordnercd grit-i18n-read-only
Kopieren Sie das Python-Modul data_pack in diesen Ordner
cp grit/format/data_pack.py .
Bearbeiten Sie
data_pack.py
in Ihrem bevorzugten Editor. Fügen Sie nach dem ersten Import die folgende Zeile hinzu:sys.path.append(os.getcwd())
main
Entfernen Sie zum Ende der Datei in der Funktion die Zeileprint '%s: %s' % (resource_id, text)
(Die Stack Overflow-Antwort besagt, dass dies in Zeile 160 auftritt, meiner Erfahrung nach in der aktuellen Version in Zeile 201)
Fügen Sie stattdessen die folgenden Zeilen ein, die entsprechend eingerückt sind (dreimal):
file = open(str(resource_id), "wb")
file.write(text)
Führen Sie das
data_pack.py
Dienstprogramm in der Chrome-Pak-Datei aus (ich habe es zuerst in dengrit-i18n-read-only
Ordner kopiert ):./data_pack.py ../chrome_100_percent.pak
Dies führt zu vielen neuen Dateien im aktuellen Verzeichnis, die alle als Nummern ohne Erweiterung benannt sind. Ihr Dateibrowser (z. B. Nautilus) sollte in der Lage sein, die Dateitypen zu bestimmen und Miniaturansichten von Bildern anzuzeigen. Ich habe die Benachrichtigungssymbole 6866 und 6867 gefunden.
Bearbeiten
Nachstehend finden Sie einige einfachere Antworten. Ich habe es jedoch geschafft, Code zu hacken, um die Ressourcen neu zu packen, die Sie nach dem Bearbeiten der Symbole verwenden können. Dies würde eine neue
.pak
Datei erzeugen , die ich nicht selbst verwendet habe. Daher kann ich nicht sicher sagen, dass dies erfolgreich zu neuen Benachrichtigungssymbolen führen würde.In der Hauptfunktion in habe
data_pack.py
ich den gesamten Code imelse
Block auskommentiert und die folgenden Zeilen hinzugefügt:Dann renn einfach
./data_pack.py
. Dies setzt voraus, dasschrome_100_percent.pak
es sich im aktuellen Verzeichnis befindet und dass Sie eine neuechrome_100_percent_new.pak
Datei erhalten, über die Sie versuchen können, sie zu kopieren/opt/google/chrome/chrome_100_percent.pak
.Ich glaube, einige zusätzliche Symbole im Ressourcenpaket, die sich auf das Benachrichtigungssymbol beziehen, wurden identifiziert. Das obige zu bearbeiten, um diese einzuschließen, sollte ziemlich einfach sein.
Final Edit
Nachdem ich wieder zu Hause bin und die Gelegenheit hatte, daran weiterzuarbeiten, konnte ich das Benachrichtigungssymbol von Chrome erfolgreich ersetzen. Wie @Glutanimate feststellte, haben Sie keine Auflösung von 16 x 16, daher bin ich mir nicht sicher, wie viel Verbesserung Sie tatsächlich erzielen können, aber ich nehme an, dass dies subjektiv ist.
Ich habe einfach die oben genannten Symbole (6864 - 6867) in GIMP geöffnet, die sie als Graustufen-PNGs erkannt haben. Ich habe ein neues Symbol in dieselbe Datei in GIMP eingefügt und versucht, dieselben Bildeigenschaften (z. B. Graustufen) beizubehalten. Ich habe diese dann als PNGs exportiert und ALLE von GIMP angebotenen Optionen deaktiviert, aber die Komprimierungsstufe 9 beibehalten. Die resultierenden Dateien hatten die Erweiterung .png, daher habe ich diese entfernt und die Originale ersetzt. Ich habe dann erneut ausgeführt
data_pack.py
, nachdem ich bereits die oben beschriebenen Änderungen vorgenommen habe.Ich habe eine Sicherungskopie des Originalpakets zusammen mit der
mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bak
geänderten .pak-Datei aufbewahrt und an deren Stelle verschoben. Ich würde sicherstellen, dass Chrome geschlossen ist, und überprüfen, dass keine Chrome-Prozesse ausgeführt werden, und ich glaube, dass Chrome eine neue Einstellung hat, um Hintergrundprozesse zuzulassen, auch wenn der Browser jetzt standardmäßig geschlossen ist.Siehe da, meine Benachrichtigungssymbole in Unity spiegeln meine Änderungen wider.
Final Edit: OK, ich habe gelogen - ich habe es mit einem 32x32 PNG versucht und es scheint gut funktioniert zu haben. Hier bitteschön. Hier einige Ergebnis-Screenshots.
(Quelle: Batch Icons von Adam Whitcroft)
quelle
Bearbeiten:
Sieht aus wie das Problem war mit
node-chrome-pak
. rocketman10404's modifieddata_pack.py
funktioniert auch mit 32px Icons einwandfrei:Bitte benutzen Sie stattdessen seine Anweisungen .
Ursprüngliche Antwort :
Die ausgezeichnete Antwort von @ rocketman10404 hat mich zu node- chrome -pak geführt , einem node.js-Skript, das bestimmte Ressourcen in Chrome / ium-
.pak
Dateien packen, entpacken und ersetzen kann .Obwohl ich es geschafft habe, die Benachrichtigungssymbole
chrome_100_percent.pak
durch dieses Tool zu ersetzen , muss ich melden, dass ich die Änderungen nicht sichtbar machen konnte. Trotzdem denke ich, dass es sich lohnt, die Schritte zu skizzieren, die ich unternommen habe, um diesen Punkt zu erreichen. Hoffentlich greift jemand anderes das auf und findet einen Weg, es tatsächlich zum Laufen zu bringen.Installieren von node.js
node-chrome-pak
Zum Ausführen wird node.js benötigt. Sie können die neueste Version installieren, indem Sie Chris Leas nodejs PPA hinzufügen:Laden Sie das Skript herunter und entpacken Sie die Chrome-Ressourcen
Laden Sie das Skript herunter:
Kopieren Sie Ihre lokale
chrome_100_percent.pak
über:Entpacke die
.pak
Datei:Identifizieren und Ändern der Benachrichtigungssymbole
Die letzte Aktion hat einen neuen Ordner mit dem Namen erstellt
./extracted
. Darin finden Sie alle Ressourcen, die in der Pak-Datei enthalten sind. Sie sind nach ihrer Ressourcen-ID benannt. Sie sollten diesen Namen beibehalten, da er für das erneute Packen der Dateien wichtig ist.Der schwierige Teil besteht nun darin, die richtigen Symbole zu identifizieren. Wenn ich mich nicht völlig irre, sollten die folgenden Dateien im Systray verwendet werden:
Nachdem Sie die gesuchten Symbole identifiziert haben, können Sie sie ändern und ersetzen. Wenn Sie möchten, können Sie die Symbole verwenden, die ich für diesen Zweck erstellt habe:
Die Quelldateien und exportierten
.png
s in verschiedenen Auflösungen werden bei GitHub gehostet .Hier ist die erste Einschränkung, die ich gefunden habe: Wenn Sie die Symbole durch ein Bild mit einer höheren Auflösung als dem Original ersetzen, wird Google Chrome beschädigt und funktioniert nicht mehr ordnungsgemäß . Für dieses spezielle Projekt müssen Sie eine Auflösung von 16x16 haben. Tatsächlich bedeutet dies, dass Sie die aktuellen Systray-Symbole nicht wesentlich verbessern können, selbst wenn Sie diese Methode zum Laufen bringen.
Natürlich besteht die Möglichkeit, dass diese Einschränkung durch die Art und Weise eingeführt
node-chrome-pak
wurde, wie sie entworfen wurde. Es ist möglicherweise möglich, die Symbole durch größere zu ersetzen, wenn Sie ein benutzerdefiniertes Python-Skript erstellen, das auf der Antwort von @ rocketman10404 basiert.Neuverpacken der Ressourcen und Ersetzen der vorhandenen Ressourcen
Nach dem Ändern / Ersetzen der vorhandenen Symbole müssen Sie eine aktualisierte
pak
Datei erstellen ...... und benutze es, um das existierende zu ersetzen:
Der springende Punkt dieser Methode
Bei meinen Versuchen konnte ich Chrome nicht dazu bringen, die aktualisierten Symbole anzuzeigen. Auch wenn ich sichergestellt habe, dass alle Symbole korrekt ersetzt wurden und tatsächlich in der geänderten
pak
Datei vorhanden sind (durch erneutes Entpacken), konnte ich das eigentliche Symbol im Systray immer noch nicht ersetzen.Leider habe ich keine Ahnung woran das liegt.
quelle