Modifica: vedi sotto per l'aggiornamento sulla sostituzione dell'icona di notifica
Se sei binari Chrome installati nella posizione tipica, li troverai in /opt/google/chrome
. In quella cartella dovresti trovare il file chrome_100_percent.pak
che contiene l'icona di notifica. Ecco i passaggi che ho usato per estrarlo, usando le informazioni da questa domanda di overflow dello stack :
Controlla il codice per il progetto grit-i18n con
svn checkout http://grit-i18n.googlecode.com/svn/trunk/ grit-i18n-read-only
Questo ti darà una cartella nel tuo CWD chiamata grit-i18n-read-only
. CD in questa cartella
cd grit-i18n-read-only
Copia il modulo python data_pack in questa cartella
cp grit/format/data_pack.py .
Modifica data_pack.py
nel tuo editor preferito. Dopo le importazioni iniziali, aggiungi la seguente riga:
sys.path.append(os.getcwd())
Verso la fine del file nella main
funzione, rimuovere la linea
print '%s: %s' % (resource_id, text)
(la risposta Stack Overflow afferma che ciò si verifica alla riga 160, nella mia esperienza la versione corrente ha alla riga 201)
Al suo posto, inserire le seguenti righe rientrate in modo appropriato (3 volte):
file = open(str(resource_id), "wb")
file.write(text)
Esegui l' data_pack.py
utilità sul file Chrome Pak (l'ho copiato prima nella grit-i18n-read-only
cartella):
./data_pack.py ../chrome_100_percent.pak
Ciò comporterà molti nuovi file nella directory corrente, tutti denominati come numeri senza estensione. Il tuo browser di file (ad es. Nautilus) dovrebbe essere in grado di determinare i tipi di file e mostrare le miniature delle immagini. Ho trovato le icone di notifica denominate 6866 e 6867.
modificare
Mentre ci sono alcune risposte più semplici qui sotto, sono riuscito a incidere un po 'di codice per reimballare le risorse che potresti provare dopo aver modificato le icone. Ciò produrrebbe un nuovo .pak
file, che non ho tentato di utilizzare me stesso, quindi non posso dire con certezza che ciò comporterebbe correttamente nuove icone di notifica.
Nella funzione principale in data_pack.py
, ho commentato tutto il codice nel else
blocco e ho aggiunto le seguenti righe:
# Read in the modified icon resource files
file = open('6864', 'r')
icon1 = file.read()
file.close()
file = open('6865', 'r')
icon2 = file.read()
file.close()
file = open('6866', 'r')
icon3 = file.read()
file.close()
file = open('6867', 'r')
icon4 = file.read()
file.close()
# Write resource pak of only notification icons
iconData = {6864: icon1, 6865: icon2, 6866: icon3, 6867: icon4}
WriteDataPack(iconData, 'tmp.pak', BINARY)
# Create copy of original pak without notification icons
dataPack = ReadDataPack('chrome_100_percent.pak')
# List of icon resources to remove
toRemove = set([6864,6865,6866,6867])
whiteList = set(dataPack.resources.keys()).difference(toRemove)
whiteListFile = open('whitelist.txt', 'w')
for i in whiteList:
whiteListFile.write(str(i)+'\n')
whiteListFile.close()
newDataPack = RePack('tmp2.pak', ['chrome_100_percent.pak'], 'whitelist.txt')
# Merge the two paks together
combinedPack = RePack('chrome_100_percent_new.pak', ['tmp2.pak', 'tmp.pak'], None)
Quindi, corri e basta ./data_pack.py
. Ciò presuppone che chrome_100_percent.pak
si trovi nella directory corrente e dovrebbe fornire un nuovo chrome_100_percent_new.pak
file su cui è possibile tentare di copiarlo /opt/google/chrome/chrome_100_percent.pak
.
Credo che siano state identificate alcune icone aggiuntive nel pacchetto di risorse relative all'icona di notifica; la modifica di quanto sopra per includerli dovrebbe essere piuttosto semplice.
Modifica finale
Ora che sono tornato a casa e ho avuto la possibilità di lavorarci ancora un po ', sono riuscito a sostituire con successo l'icona di notifica di Chrome. Come notato da @Glutanimate, sei bloccato con una risoluzione 16x16, quindi non sono sicuro di quanti miglioramenti puoi effettivamente ottenere, ma suppongo che sia soggettivo.
Ho semplicemente aperto le suddette icone (6864 - 6867) in GIMP, che le hanno rilevate come PNG in scala di grigi. Ho incollato una nuova icona nello stesso file in GIMP, tentando così di mantenere le stesse proprietà dell'immagine (ad es. Scala di grigi). Ho quindi esportato questi come PNG, deselezionando TUTTE le opzioni offerte da GIMP ma mantenendo un livello di compressione di 9. I file risultanti avevano estensioni .png, quindi ho rimosso quelli e sostituito gli originali. Ho quindi rieseguito data_pack.py
, avendo già apportato le modifiche sopra descritte.
Ho tenuto una copia di backup del pacchetto originale con mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bak
e ho spostato il mio file .pak modificato al suo posto. Mi assicurerei che Chrome sia chiuso mentre lo faccio e ricontrollo che non ci siano processi Chrome in esecuzione, e credo che Chrome abbia una nuova impostazione per consentire i processi in background anche quando il browser è chiuso per impostazione predefinita ora.
Ecco, le mie icone di notifica in Unity riflettono le mie modifiche.
Final-Final Edit: OK, ho mentito - ho provato un PNG 32x32 e sembra aver funzionato bene. Quindi, eccoti. Ecco alcuni screenshot dei risultati.
- Icona originale: probabilmente riconoscerai l'icona predefinita "nessuna notifica non letta" nel mio pannello tra la mia casella personale e le icone meteo:
- Nuova icona: la mia versione modificata 32x32px nella stessa posizione:
(Fonte: icone batch di Adam Whitcroft)
/usr/share/icons
, se questo aiuta