Sunting: lihat di bawah untuk pembaruan tentang penggantian ikon pemberitahuan
Jika binari chrome Anda dipasang di lokasi tipikal, Anda akan menemukannya /opt/google/chrome
. Di folder itu Anda harus menemukan filechrome_100_percent.pak
yang berisi ikon notifikasi. Inilah langkah-langkah yang saya gunakan untuk mengekstraknya, menggunakan informasi dari pertanyaan stack overflow ini :
Periksa kode ke grit-i18n dengan
svn checkout http://grit-i18n.googlecode.com/svn/trunk/ grit-i18n-read-only
Ini akan memberi Anda folder di CWD Anda yang disebut grit-i18n-read-only
. CD ke dalam folder ini
cd grit-i18n-read-only
Salin modul data_pack python ke folder ini
cp grit/format/data_pack.py .
Edit data_pack.py
dalam editor pilihan Anda. Setelah impor awal, tambahkan baris berikut:
sys.path.append(os.getcwd())
Menjelang akhir file dalam main
fungsi, hapus baris
print '%s: %s' % (resource_id, text)
(jawaban Stack Overflow menyatakan ini terjadi di baris 160, menurut pengalaman saya, versi saat ini ada di baris 201)
Sebagai gantinya, masukkan baris berikut indentasi dengan benar (3 kali):
file = open(str(resource_id), "wb")
file.write(text)
Jalankan data_pack.py
utilitas pada file chrome pak (saya salin ke grit-i18n-read-only
folder terlebih dahulu):
./data_pack.py ../chrome_100_percent.pak
Ini akan menghasilkan banyak file baru di direktori saat ini, semua dinamai sebagai angka tanpa ekstensi. Peramban file Anda (misalnya nautilus) harus dapat menentukan jenis file dan menampilkan thumbnail gambar. Saya menemukan ikon pemberitahuan bernama 6866 & 6867.
Edit
Meskipun ada beberapa jawaban sederhana di bawah ini, saya berhasil meretas beberapa kode untuk mengemas ulang sumber daya yang dapat Anda coba setelah mengedit ikon. Ini akan menghasilkan yang baru.pak
file , yang belum saya coba gunakan sendiri, jadi saya tidak bisa mengatakan dengan pasti ini akan berhasil menghasilkan ikon pemberitahuan baru.
Dalam fungsi utama data_pack.py
, saya berkomentar semua kode di else
blok dan menambahkan baris berikut:
# 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)
Kemudian, jalankan saja ./data_pack.py
. Asumsi chrome_100_percent.pak
ini ada di direktori saat ini, dan akan memberi Anda chrome_100_percent_new.pak
file baru yang dapat Anda coba salin /opt/google/chrome/chrome_100_percent.pak
.
Saya percaya beberapa ikon tambahan di pak sumber daya terkait dengan ikon pemberitahuan telah diidentifikasi; mengedit di atas untuk memasukkan mereka harus cukup mudah.
Edit Terakhir
Sekarang saya kembali ke rumah dan berkesempatan untuk mengerjakan ini lagi, saya berhasil mengganti ikon pemberitahuan chrome. Seperti yang dicatat oleh @Glutanimate, Anda terjebak dengan resolusi 16x16, jadi saya tidak yakin berapa banyak perbaikan yang dapat Anda capai, tapi saya rasa itu subjektif.
Saya hanya membuka ikon yang disebutkan di atas (6864 - 6867) di GIMP, yang mendeteksi mereka sebagai Grayscale PNGs. Saya menempelkan ikon baru ke file yang sama di GIMP, sehingga berusaha untuk menjaga properti gambar yang sama (misalnya skala abu-abu). Saya kemudian mengekspor ini sebagai PNG, tidak menandai SEMUA opsi yang ditawarkan GIMP tetapi mempertahankan tingkat kompresi 9. File yang dihasilkan memiliki ekstensi .png, jadi saya menghapusnya dan mengganti yang asli. Saya kemudian berlari kembali data_pack.py
, setelah membuat modifikasi rinci di atas.
Saya menyimpan salinan cadangan pak asli mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bak
dan memindahkan file .pak saya yang sudah dimodifikasi. Saya akan memastikan chrome ditutup saat melakukan ini, dan periksa kembali bahwa tidak ada proses chrome yang berjalan, dan saya percaya chrome memiliki pengaturan baru untuk memungkinkan proses latar belakang bahkan ketika browser ditutup secara default sekarang.
Lihatlah, ikon notifikasi saya di Unity mencerminkan perubahan saya.
Sunting Terakhir-Final: Oke, saya bohong - Saya mencoba PNG 32x32 dan sepertinya berfungsi dengan baik. Jadi, begitulah. Berikut beberapa screenshot hasil.
- Ikon Asli: Anda mungkin akan mengenali ikon 'notifikasi belum dibaca' default di panel saya di sini antara dropbox saya dan ikon cuaca:
- Ikon Baru: Versi saya yang dimodifikasi 32x32px di lokasi yang sama:
(Sumber: Ikon batch dari Adam Whitcroft)
/usr/share/icons
, jika itu membantu