Google Chrome'un düşük çözünürlüklü bildirim simgesini nasıl değiştirebilirim?


15

Google Chrome yakın zamanda Ubuntu 14.04 kurulumumda 35.0.1916.114 sürümüne geçirildi.

O zamandan beri sistem tepsisinde bildirim simgesi görünmeye başladı. Ancak düşük çözünürlüklü bir simge kullanıyor gibi görünüyor - bozuk görünüyor:

resim açıklamasını buraya girin

Nasıl düzeltebilirim / değiştirebilirim?


1
Simgeler saklanırsa /usr/share/iconsyardımcı olur
MrVaykadji

@MrVaykadji: Yardımınız için teşekkürler! Bu dizinin altına baktım ancak herhangi bir Google Chrome bildirim simgesi bulamadım. Bunların farklı bir dizinde olduğunu tahmin ediyorum.
fabiomaia

1
belki /opt? Google ikili dosyalarının yüklendiği yer burasıdır.
BayVaykadji

2
Lanet olsun. Ve Google-Chrome açık kaynak değildir, bu yüzden bu sabit kodlanmışsa (ikili dosyaların içinde), bu simgeyi değiştiremezsiniz. Belki de adlarında "chrome" bulunan tüm dosyalara catfishveya disk çapında arama yapmanızı sağlayan diğer yöntemlere bakmayı deneyebilirsiniz .
BayVaykadji

1
Bu bildirim simgesi en az 3 noktada yanlış: kullanıcı tercihlerine uymuyor; Ubuntu renklerine saygı duymaz; çok düşük bir çözünürlük kullanıyor.
Rael Gugelmin Cunha

Yanıtlar:


14

Düzenleme: bildirim simgesini değiştirme hakkında güncelleme için aşağıya bakın

Eğer krom ikili dosyaları tipik bir konuma kuruluysa, bunları bulabilirsiniz /opt/google/chrome. Bu klasörde chrome_100_percent.pakbildirim simgesini içeren dosyayı bulmalısınız . Bu yığın taşması sorusundaki bilgileri kullanarak, ayıklamak için kullandığım adımlar şunlardır :

  1. Kod Ödemeye kum-i18n projesi ile

    svn checkout http://grit-i18n.googlecode.com/svn/trunk/ grit-i18n-read-only

  2. Bu size CWD'nizde bir klasör verecektir grit-i18n-read-only. CD'yi bu klasöre yerleştirin

    cd grit-i18n-read-only

  3. Data_pack python modülünü bu klasöre kopyalayın

    cp grit/format/data_pack.py .

  4. Düzenleme data_pack.pytercih editörü. İlk içe aktarma işlemlerinden sonra aşağıdaki satırı ekleyin:

    sys.path.append(os.getcwd())

  5. İşlevdeki dosyanın sonuna doğru mainsatırı kaldırın

    print '%s: %s' % (resource_id, text)

    (Yığın Taşması yanıtı bunun 160 satırında oluştuğunu belirtir, benim durumumda mevcut sürümde 201 satırında bulunur)

  6. Yerine, uygun şekilde girintili olarak yerleştirilen aşağıdaki satırları ekleyin (3 kez):

    file = open(str(resource_id), "wb")

    file.write(text)

  7. data_pack.pyChrome pak dosyasındaki yardımcı programı çalıştırın (önce grit-i18n-read-onlyklasöre kopyaladım ):

    ./data_pack.py ../chrome_100_percent.pak

Bu, geçerli dizinde, tümü uzantısız numaralar olarak adlandırılan birçok yeni dosyayla sonuçlanır. Dosya tarayıcınız (örn. Nautilus) dosya türlerini belirleyebilmeli ve küçük resim gösterebilmelidir. 6866 ve 6867 olarak adlandırılan bildirim simgelerini buldum.


Düzenle

Aşağıda bazı daha basit cevaplar olsa da, simgeleri düzenledikten sonra deneyebileceğiniz kaynakları yeniden paketlemek için bazı kodları bir araya getirmeyi başardım. Bu .pak, kendimi kullanmaya çalışmadığım yeni bir dosya oluşturacaktır, bu yüzden bunun başarıyla yeni bildirim simgeleriyle sonuçlanacağından emin olamam.

Ana işlevinde data_pack.py, tüm kod elsebloğunu yorumladı ve aşağıdaki satırları ekledim:

# 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)

Sonra, sadece koş ./data_pack.py. Bu chrome_100_percent.pak, geçerli dizinde olduğunu varsayar ve chrome_100_percent_new.pakkopyalamaya çalışabileceğiniz yeni bir dosya vermelidir /opt/google/chrome/chrome_100_percent.pak.

Kaynak paketine bildirim simgesiyle ilgili bazı ek simgeler belirlendiğine inanıyorum; Bunları dahil etmek için yukarıdakileri düzenlemek oldukça basit olmalıdır.


Son Düzenleme

Artık eve döndüğüm ve bunun üzerinde daha fazla çalışma şansına sahip olduğum için, kromun bildirim simgesini başarıyla değiştirmeyi başardım. @Glutanimate'ın belirttiği gibi, 16x16 çözünürlükle sıkışıp kaldınız, bu yüzden gerçekten ne kadar iyileştirme yapabileceğinizden emin değilim, ancak bunun öznel olduğunu düşünüyorum.

Yukarıda belirtilen simgeleri (6864 - 6867) GIMP'de açtım, bunları Gri Tonlamalı PNG'ler olarak algıladım. GIMP'deki aynı dosyaya yeni bir simge yapıştırdım, böylece aynı görüntü özelliklerini (örneğin gri tonlamalı) tutmaya çalıştım. Daha sonra bunları PNG olarak dışa aktardım, GIMP'nin sunduğu tüm seçeneklerin işaretini kaldırdım, ancak sıkıştırma düzeyini 9 korudum. Ortaya çıkan dosyalar .png uzantılarına sahipti, bu yüzden bunları kaldırdım ve orijinalleri değiştirdim. Daha sonra data_pack.py, yukarıda ayrıntılı olarak yapılan değişiklikleri yaptıktan sonra tekrar koştum .

Orijinal pak'in yedek bir kopyasını sakladım mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bakve değiştirilmiş .pak dosyamı yerine taşıdım. Bunu yaparken kromun kapalı olduğundan emin olurum ve çalışan krom işlemi olmadığını tekrar kontrol ederim ve Chrome'un tarayıcı varsayılan olarak kapatıldığında bile arka plan işlemlerine izin vermek için yeni bir ayar olduğuna inanıyorum.

Bakın, Unity'deki bildirim simgelerim değişiklikleri yansıtıyor.

Sonunda Son Düzenleme: Tamam, yalan söyledim - 32x32 PNG denedim ve gayet iyi çalışıyor gibi görünüyor. Al işte ozaman, buyur. İşte bazı sonuç ekran görüntüleri.

  • Orijinal Simge: Muhtemelen buradaki panelimdeki dropbox ve hava durumu simgeleri arasındaki varsayılan 'okunmamış bildirim yok' simgesini tanıyacaksınız:

Orijinal Simge

  • Yeni Simge: 32x32px değiştirilmiş sürümüm aynı konumda:

Yeni simge

(Kaynak: Adam Whitcroft'tan toplu ikonlar )


Güncelleme için teşekkürler! 32px simgelerinin data_pack.py ile iyi çalıştığını onaylayabilirim. Tüm bildirim simgelerini hesaba katmak için kullandığınız snippet'i değiştirdim. Umarım umursamazsın.
09:44

1
FWIW, bildirim sistemini devre dışı bırakmadan göstergeyi tamamen kaldırmak için de bu yöntemi kullanabilirsiniz (bkz. Askubuntu.com/a/473416/81372 ).
Glutanimate

Dostum, öğreticiyi biraz temizlerseniz mutlu olurum ... data.py üzerinde yapılan tüm değişiklikler gerekli mi? Biraz kafam karıştı. Hiçbir suç demek istemedim, sadece onu takip etmek istiyorum.
deckoff

1
Güzel kesmek. Sadece eklemek için, burada daha fazla simge bulabilirsiniz thenounproject.com/search/?q=bell
gc5

Chrome 36+ ile şimdi simgeler 6894 ... 6897
gc5

8

Düzenle:

Sorun olduğu anlaşılıyor node-chrome-pak. rocketman10404's modifiye data_pack.py32px simgeleri ile bile iyi çalışıyor:

resim açıklamasını buraya girin

Lütfen onun yerine talimatlarını kullanın.


Orijinal cevap :

@ rocketman10404'ün mükemmel yanıtı beni Chrome / ium dosyalarındaki belirli kaynakları paketleyebilen, paketten çıkarabilen ve değiştirebilen bir node.js betiği olan node-chrome- pak'a yönlendirdi .pak.

chrome_100_percent.pakBu araçla bildirim simgelerini değiştirmeyi başardım, ancak değişiklikleri görünür yapamadığımı bildirmeliyim. Yine de bu noktaya gelmek için attığım adımları özetlemenin çabaya değer olduğunu düşünüyorum. Umarım başka biri bunu alır ve gerçekten işe yarayacak bir yol bulur.

Node.js yüklüyor

node-chrome-pakçalıştırmak için node.js'ye ihtiyaç duyacaktır. Chris Lea'nun nodejs PPA'sını ekleyerek en son sürümü yükleyebilirsiniz:

sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Komut dosyasını indirme ve Chrome'un kaynaklarını açma

Komut dosyasını indirin:

git clone https://bitbucket.org/hikipro/node-chrome-pak.git
cd node-chrome-pak

Yerel adresinizi kopyalayın chrome_100_percent.pak:

cp /opt/google/chrome/chrome_100_percent.pak ./chrome_100_percent.pak

.pakDosyayı paketinden çıkarın :

node ./main.js unpack chrome_100_percent.pak

Bildirim simgelerini belirleme ve değiştirme

Son eylem adlı yeni bir klasör oluşturmuş olacaktır ./extracted. İçinde pak dosyasında bulunan tüm kaynakları bulacaksınız. Kaynak kimliklerinden sonra adlandırılırlar. Dosyaları yeniden paketlemek için önemli olduğu için bu adı korumak isteyeceksiniz.

Zor olan kısım şimdi doğru simgeleri tanımlamakta yatıyor. Tamamen yanlış değilse, aşağıdaki dosyalar systray kullanılanlar olmalıdır:

6864.png
6865.png
6866.png
6867.png

Aradığınız simgeleri belirledikten sonra, bunları değiştirmeye ve değiştirmeye devam edebilirsiniz. İsterseniz bu amaçla oluşturduğum simgeleri kullanabilirsiniz:

      

      

.pngFarklı çözünürlüklerde kaynak dosyalar ve dışa aktarılan dosyalar GitHub'da barındırılır .

Bulduğum ilk sınırlama geliyor: Simgeleri, orijinal Google Chrome'dan daha yüksek bir çözünürlükte bir resimle değiştirirseniz bozulur ve düzgün çalışmayı bırakır . Bu proje için 16x16 çözünürlükle kalmanız gerekecek. Aslında bu, bu yöntemi çalıştıracak olsanız bile, mevcut systray simgelerini önemli ölçüde iyileştiremeyeceğiniz anlamına gelir.

Elbette bu sınırlamanın node-chrome-paktasarlandığı şekilde ortaya çıkma olasılığı vardır . @ Rocketman10404'ün cevabına göre özel bir python betiği oluşturursanız, simgeleri daha büyük olanlarla değiştirmek mümkün olabilir.

Kaynakları yeniden paketleme ve mevcut kaynakları değiştirme

Mevcut simgeleri değiştirdikten / değiştirdikten sonra güncellenmiş bir pakdosya oluşturmanız gerekir ...

node ./main.js pack ./extracted ./chrome_100_percent_modified.pak

... ve mevcut olanı değiştirmek için kullanın:

sudo cp ./chrome_100_percent_modified.pak /opt/google/chrome/chrome_100_percent.pak

Bu yöntemin temel noktası

Denemelerim sırasında Chrome'un güncellenmiş simgeleri göstermesini sağlayamadım. Tüm simgelerin doğru bir şekilde değiştirildiğinden ve gerçekten değiştirilmiş pakdosyada bulunduğundan emin olsam bile (tekrar açarak) sistemde gerçek simgeyi değiştiremedim.

Maalesef bunun neden olduğu hakkında hiçbir fikrim yok.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.