Редагувати: див. Нижче для оновлення щодо заміни піктограми сповіщень
Якщо хромовані бінарні файли встановлені в типовому місці, ви їх знайдете /opt/google/chrome
. У цій папці ви повинні знайти файл, chrome_100_percent.pak
який містить значок сповіщення. Ось кроки, якими я користувався, щоб отримати його, використовуючи інформацію з цього питання про переповнення стека :
Витягує код в грит-i18n проекту з
svn checkout http://grit-i18n.googlecode.com/svn/trunk/ grit-i18n-read-only
Це дасть вам папку у вашому CWD grit-i18n-read-only
. CD у цю папку
cd grit-i18n-read-only
Скопіюйте модуль python data_pack у цю папку
cp grit/format/data_pack.py .
Редагуйте data_pack.py
у вибраному редакторі. Після початкового імпорту додайте наступний рядок:
sys.path.append(os.getcwd())
До кінця файла у main
функції видаліть рядок
print '%s: %s' % (resource_id, text)
(Відповідь на переповнення стека стверджує, що це відбувається у рядку 160, на мій досвід, у поточній версії він є у рядку 201)
На його місце вставити наступні рядки з відступом відповідним чином (3 рази):
file = open(str(resource_id), "wb")
file.write(text)
Запустіть data_pack.py
утиліту на файл chrome pak (я 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
.
Я вважаю, що деякі додаткові іконки в пакеті ресурсів, пов’язані з піктограмою сповіщень, виявлені редагування вищезазначеного, щоб включити ці, має бути досить простим.
Остаточна редакція
Тепер, коли я повернувся додому і мав можливість ще трохи попрацювати над цим, мені вдалося успішно замінити значок сповіщення хрому. Як зазначає @Glutanimate, ви застрягли з роздільною здатністю 16x16, тому я не впевнений, скільки поліпшень ви можете реально досягти, але я вважаю, що це суб'єктивно.
Я просто відкрив вищезгадані піктограми (6864 - 6867) у GIMP, які виявили їх як PNG у відтінках сірого. Я вставив нову піктограму в той самий файл GIMP, намагаючись зберегти ті самі властивості зображення (наприклад, масштаб сірого). Потім я експортував їх у вигляді PNG, знімаючи галочки з усіх варіантів, які пропонує GIMP, але підтримуючи рівень стиснення 9. У отриманих файлах були розширення .png, тому я видалив їх і замінив оригінали. Потім я перебіг data_pack.py
, вже внісши детально модифікації.
Я зберігав резервну копію оригіналу пак mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bak
пакета і перемістив модифікований файл .pak на своє місце. Я б переконався, що хром закритий при цьому, і ще раз перевірте, чи немає хромованих процесів, і я вважаю, що в chrome є нове налаштування, яке дозволяє фонові процеси, навіть коли браузер за замовчуванням закритий.
Ось, ось, мої значки сповіщень в Unity відображають мої зміни.
Нарешті-остаточне редагування: Гаразд, я збрехав - я спробував PNG 32x32, і, здається, він працював чудово. Отже, там ви йдете. Ось кілька скріншотів.
- Оригінальний значок: Ви, мабуть, розпізнаєте за замовчуванням значок "без непрочитаних сповіщень" на моїй панелі тут, між моїми папками "Піктограма" та погодними значками:
- Нова ікона: Моя модифікована версія 32x32px у тому самому місці:
(Джерело: Пакетні іконки від Адама Віткрофта)
/usr/share/icons
, якщо це допоможе