मैं Google Chrome के कम रिज़ॉल्यूशन अधिसूचना आइकन को कैसे बदल सकता हूं?


15

Google Chrome को हाल ही में मेरे Ubuntu 14.04 इंस्टॉलेशन पर 35.0.1916.114 संस्करण में अपग्रेड किया गया था।

तब से नोटिफिकेशन आइकन सिस्टम ट्रे पर दिखाई देने लगा है। हालाँकि ऐसा लगता है कि यह एक कम रिज़ॉल्यूशन आइकन का उपयोग कर रहा है - यह विकृत दिखता है:

यहाँ छवि विवरण दर्ज करें

मैं इसे कैसे ठीक / बदल सकता हूँ?


1
प्रतीक संग्रहीत हैं /usr/share/icons, यदि वह मदद करता है
MrVaykadji

@MrVaykadji: मदद के लिए धन्यवाद! मैंने उस निर्देशिका के अंतर्गत देखा, लेकिन मुझे कोई Google Chrome अधिसूचना आइकन नहीं मिला। मैं अनुमान लगा रहा हूं कि वे एक अलग निर्देशिका में हैं।
फेबियोमिया

1
शायद /opt? यहीं पर google binaries स्थापित है।
श्रीवेकादजी

2
अरे नहीं। और Google-Chrome खुला स्रोत नहीं है, इसलिए यदि यह हार्ड-कोडित है (बायनेरिज़ के अंदर अर्थ), तो आप उस आइकन को बदलने में सक्षम नहीं होंगे। हो सकता है कि आप उनके नाम में "क्रोम" वाली सभी फाइलों पर एक नज़र डालने की कोशिश कर सकते हैं, catfishउदाहरण के लिए, या अन्य तरीकों से आप डिस्क-वाइड की खोज कर सकते हैं।
श्रीवेकादजी

1
यह अधिसूचना आइकन कम से कम 3 बिंदुओं में गलत है: यह उपयोगकर्ता की प्राथमिकताओं का सम्मान नहीं करता है; यह उबंटू रंगों का सम्मान नहीं करता है; यह वास्तव में कम संकल्प का उपयोग कर रहा है।
राएल गुगेलमिन कुन्हा

जवाबों:


14

संपादित करें: अधिसूचना आइकन की जगह पर अद्यतन के लिए नीचे देखें

यदि आप क्रोम बायनेरी ठेठ स्थान पर स्थापित हैं, तो आप उन्हें खोज लेंगे /opt/google/chrome। उस फ़ोल्डर में आपको वह फ़ाइल ढूंढनी चाहिए chrome_100_percent.pakजिसमें अधिसूचना आइकन है। इस स्टैक ओवरफ्लो प्रश्न की जानकारी का उपयोग करते हुए, मैंने इसे निकालने के लिए उपयोग किए जाने वाले चरण दिए हैं :

  1. के साथ grit-i18n प्रोजेक्ट के लिए कोड चेकआउट करें

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

  2. यह आपको आपके CWD नामक फोल्डर में देगा grit-i18n-read-only। इस फोल्डर में सी.डी.

    cd grit-i18n-read-only

  3. इस फ़ोल्डर में data_pack python मॉड्यूल को कॉपी करें

    cp grit/format/data_pack.py .

  4. data_pack.pyअपने पसंदीदा संपादक में संपादित करें । प्रारंभिक आयात के बाद, निम्नलिखित पंक्ति जोड़ें:

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

  5. mainफ़ंक्शन में फ़ाइल के अंत की ओर , लाइन को हटा दें

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

    (स्टैक ओवरफ्लो उत्तर में कहा गया है कि यह लाइन 160 पर होता है, मेरे अनुभव में वर्तमान संस्करण में यह लाइन 201 पर है)

  6. इसके स्थान पर, निम्नलिखित पंक्तियों को उचित रूप से सम्मिलित करें (3 बार):

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

    file.write(text)

  7. data_pack.pyक्रोम पाक फ़ाइल पर उपयोगिता चलाएँ (मैंने इसे grit-i18n-read-onlyपहले फ़ोल्डर में कॉपी किया है ):

    ./data_pack.py ../chrome_100_percent.pak

इसके परिणामस्वरूप वर्तमान निर्देशिका में बहुत सी नई फाइलें होंगी, सभी को बिना किसी एक्सटेंशन के संख्या के रूप में नामित किया जाएगा। आपका फ़ाइल ब्राउज़र (जैसे nautilus) फ़ाइल प्रकारों को निर्धारित करने और छवि थंबनेल दिखाने में सक्षम होना चाहिए। मुझे 6866 और 6867 नाम के नोटिफिकेशन आइकन मिले।


संपादित करें

जबकि नीचे कुछ सरल उत्तर हैं, मैं उन संसाधनों को फिर से पैकेज करने के लिए कुछ कोड को एक साथ हैक करने में कामयाब रहा, जिन्हें आप आइकन संपादित करने के बाद प्रयास कर सकते हैं। यह एक नई .pakफ़ाइल का उत्पादन करेगा , जिसे मैंने खुद का उपयोग करने का प्रयास नहीं किया है, इसलिए मैं यह निश्चित रूप से नहीं कह सकता कि यह नए अधिसूचना आइकन में सफलतापूर्वक परिणाम देगा।

मुख्य समारोह में data_pack.py, मैंने elseब्लॉक के सभी कोड को टिप्पणी की और निम्नलिखित पंक्तियों को जोड़ा:

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

फिर, बस दौड़ो ./data_pack.py। यह chrome_100_percent.pakमाना जाता है कि वर्तमान निर्देशिका में है, और आपको एक नई chrome_100_percent_new.pakफ़ाइल देनी चाहिए, जिसे आप कॉपी करके देख सकते हैं /opt/google/chrome/chrome_100_percent.pak

मेरा मानना ​​है कि अधिसूचना आइकन से संबंधित संसाधन पाक में कुछ अतिरिक्त आइकन पहचाने गए हैं; उन लोगों को शामिल करने के लिए उपरोक्त संपादन बहुत सरल होना चाहिए।


अंतिम संपादन

अब जब मैं घर वापस आ गया हूं और मुझे इस पर काम करने का मौका मिला, तो मैं क्रोम के नोटिफिकेशन आइकन को सफलतापूर्वक बदलने में कामयाब रहा। जैसा कि @Gutanimate ने कहा, आप 16x16 रिज़ॉल्यूशन के साथ फंस गए हैं, इसलिए मुझे यकीन नहीं है कि आप वास्तव में कितना सुधार कर सकते हैं, लेकिन मुझे लगता है कि यह व्यक्तिपरक है।

मैंने बस GIMP में पूर्वोक्त आइकॉन (6864 - 6867) खोले, जो उन्हें ग्रेस्केल PNGs के रूप में पाया। मैंने GIMP में एक ही फ़ाइल में एक नया आइकन चिपकाया है, इस प्रकार समान छवि गुण (जैसे ग्रेस्केल) रखने का प्रयास किया जा रहा है। मैंने फिर उन्हें PNG के रूप में निर्यात किया, GIMP के सभी विकल्पों को अनचेक करते हुए, लेकिन 9 के संपीड़न स्तर को बनाए रखा। परिणामस्वरूप फ़ाइलों में .png एक्सटेंशन थे, इसलिए मैंने उन को हटा दिया और मूल को बदल दिया। मैं फिर से फिर से भागा data_pack.py, पहले से ही संशोधनों को ऊपर कर दिया।

मैंने मूल पाक की एक बैकअप प्रति अपने पास रखी mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bakऔर अपनी संशोधित .pak फ़ाइल को उसके स्थान पर स्थानांतरित कर दिया। मैं यह सुनिश्चित करूंगा कि ऐसा करते समय क्रोम बंद हो, और यह जांचें कि क्रोम प्रक्रियाएं नहीं चल रही हैं, और मेरा मानना ​​है कि क्रोम में पृष्ठभूमि प्रक्रियाओं को अनुमति देने के लिए एक नई सेटिंग है, जब ब्राउज़र डिफ़ॉल्ट रूप से बंद हो जाता है।

लो और निहारना, एकता में मेरे अधिसूचना आइकन मेरे परिवर्तनों को दर्शाते हैं।

अंत में अंतिम संपादन: ठीक है, मैंने झूठ बोला - मैंने 32x32 पीएनजी का प्रयास किया और ऐसा लगता है कि यह ठीक काम किया है। तो यह तूम गए वहाँ। यहाँ कुछ परिणाम स्क्रीनशॉट।

  • मूल चिह्न: आप शायद मेरे पैनल में मेरे ड्रॉपबॉक्स और मौसम के आइकन के बीच डिफ़ॉल्ट 'कोई अपठित सूचनाएँ' आइकन नहीं पहचान पाएंगे:

मूल चिह्न

  • नया चिह्न: मेरा 32x32px एक ही स्थान पर संशोधित संस्करण:

नया आइकन

(स्रोत: एडम व्हिटक्रॉफ्ट से बैच आइकन )


अद्यतन के लिए धन्यवाद! मैं पुष्टि कर सकता हूं कि 32px आइकन data_pack.py के साथ ठीक काम कर रहे हैं। मैंने आपके द्वारा पोस्ट किए गए स्निपेट को सभी अधिसूचना आइकन के लिए संशोधित किया है। मुझे आशा है कि आपको कोई आपत्ति नहीं है।
ग्लूटानाट

1
FWIW, आप नोटिफिकेशन सिस्टम (cf. askubuntu.com/a/473416/81372 ) को अक्षम किए बिना संकेतक को पूरी तरह से हटाने के लिए भी इस विधि का उपयोग कर सकते हैं ।
Glutanimate

दोस्त, मुझे खुशी होगी यदि आप ट्यूटोरियल को थोड़ा सा साफ करते हैं ... क्या डेटाफ्रेम के लिए सभी संशोधनों की आवश्यकता है? मैं थोड़ा असमंजस में हूँ। कोई अपराध नहीं था, मैं सिर्फ इसका पालन करना चाहता हूं।
डेकॉफ

1
अच्छा हैक। बस जोड़ने के लिए, आप और अधिक प्रतीक यहां पा सकते हैं thenounproject.com/search/?q=bell
gc5

Chrome 36+ के साथ अब आइकन 6894 ... 6897
gc5

8

संपादित करें:

लगता है कि मुद्दा साथ था node-chrome-pak। रॉकेटमैन 10404 का संशोधित data_pack.pyकाम ठीक है, यहां तक ​​कि 32 पीएक्स आइकन के साथ भी:

यहाँ छवि विवरण दर्ज करें

कृपया उसके निर्देशों का उपयोग करें ।


मूल उत्तर :

@ रॉकेटमैन 10404 के उत्कृष्ट उत्तर ने मुझे नोड-क्रोम- पीक, एक नोड.जेएस स्क्रिप्ट का नेतृत्व किया , जो क्रोम / आईयूएम की .pakफाइलों में विशिष्ट संसाधनों को पैक, अनपैक और प्रतिस्थापित कर सकता है।

हालांकि मैं chrome_100_percent.pakइस उपकरण के साथ अधिसूचना आइकन को बदलने में कामयाब रहा हूं, मुझे यह रिपोर्ट करना होगा कि मैं परिवर्तनों को दिखाई देने में सक्षम नहीं था। फिर भी मुझे लगता है कि इस बिंदु को पाने के लिए मैंने जो कदम उठाए हैं, उन्हें रेखांकित करने के प्रयास के लायक है। उम्मीद है कि कोई और इसे ले जाएगा और वास्तव में इसे काम करने का एक रास्ता खोज लेगा।

नोड की स्थापना

node-chrome-pakचलाने के लिए node.js की आवश्यकता होगी। आप क्रिस ले के नोड्स पीपीए को जोड़कर नवीनतम संस्करण स्थापित कर सकते हैं:

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

स्क्रिप्ट डाउनलोड करना और क्रोम के संसाधनों को अनपैक करना

स्क्रिप्ट डाउनलोड करें:

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

अपने स्थानीय chrome_100_percent.pakको कॉपी करें :

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

.pakफ़ाइल को अनपैक करें :

node ./main.js unpack chrome_100_percent.pak

अधिसूचना आइकनों को पहचानना और संशोधित करना

अंतिम क्रिया ने एक नया फ़ोल्डर बनाया होगा जिसे कहा जाता है ./extracted। इसमें आपको pak फाइल में निहित सभी संसाधन मिलेंगे। उनका नाम उनकी रिसोर्स आईडी के नाम पर रखा गया है। आप इस नाम को संरक्षित करना चाहेंगे क्योंकि यह फाइलों को दोबारा बनाने के लिए महत्वपूर्ण है।

मुश्किल हिस्सा अब सही आइकनों की पहचान करने में निहित है। अगर मैं पूरी तरह से गलत नहीं हूँ तो निम्नलिखित फाइलें सिस्ट्रे में इस्तेमाल होने वाली होनी चाहिए:

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

आप जिन आइकनों की तलाश कर रहे थे, उन्हें पहचानने के बाद, आप उन्हें संशोधित करने और बदलने के लिए आगे बढ़ सकते हैं। यदि आप चाहते हैं कि आप इस उद्देश्य के लिए मेरे द्वारा बनाए गए आइकन का उपयोग कर सकते हैं:

      

      

.pngविभिन्न प्रस्तावों में स्रोत फ़ाइलों और निर्यात s को GitHub में होस्ट किया गया है

यहाँ पहली सीमा मुझे मिली है: यदि आप आइकनों को किसी भी रिज़ॉल्यूशन में छवि के साथ बदल देते हैं तो मूल Google Chrome दूषित हो जाएगा और ठीक से काम करना बंद कर देगा । इस विशेष परियोजना के लिए आपको 16x16 संकल्प के साथ रहना होगा। प्रभाव में इसका मतलब है कि आप वर्तमान सिस्ट्रे आइकन पर महत्वपूर्ण रूप से सुधार नहीं कर पाएंगे, भले ही आप इस पद्धति को काम करने के लिए कर रहे हों।

बेशक वहाँ संभावना है कि इस सीमा node-chrome-pakको डिजाइन किया गया था। यदि आप @ रॉकेटमैन 10404 के उत्तर के आधार पर एक कस्टम पायथन स्क्रिप्ट बनाते हैं, तो आइकनों को बड़े लोगों के साथ बदलना संभव हो सकता है।

संसाधनों को फिर से भरना और मौजूदा लोगों को बदलना

मौजूदा आइकन को संशोधित / प्रतिस्थापित करने के बाद आपको एक अद्यतन pakफ़ाइल बनानी होगी ...

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

... और इसे मौजूदा एक को बदलने के लिए उपयोग करें:

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

इस विधि का क्रूक्स

अपने प्रयासों में मैं अपडेट किए गए आइकन दिखाने के लिए क्रोम प्राप्त करने में सक्षम नहीं हूं। यहां तक ​​कि अगर मैंने यह सुनिश्चित किया कि सभी आइकन सही तरीके से बदल दिए गए थे और वास्तव में संशोधित pakफ़ाइल में मौजूद थे (इसे फिर से अनपैक करके) मैं अभी भी सिस्ट्रे में वास्तविक आइकन को बदलने में सक्षम नहीं था।

दुर्भाग्य से मुझे नहीं पता कि यह क्यों है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.