Google Chrome был недавно обновлен до версии 35.0.1916.114 в моей установке Ubuntu 14.04.
С тех пор значок уведомлений начал появляться на панели задач. Однако кажется, что он использует значок низкого разрешения - он выглядит искаженным:
Как я могу это исправить / заменить?
google-chrome
icons
notification
fabiomaia
источник
источник
/usr/share/icons
, если это поможет/opt
? Вот где установлены двоичные файлы Google.catfish
например, или другими способами, позволяющими осуществлять поиск по всему диску.Ответы:
Изменить: см. Ниже обновление для замены значка уведомления
Если у вас установлены хромированные двоичные файлы в типичном месте, вы найдете их в
/opt/google/chrome
. В этой папке вы должны найти файл,chrome_100_percent.pak
который содержит значок уведомления. Вот шаги, которые я использовал для его извлечения, используя информацию из этого вопроса переполнения стека :Получите код для проекта grit-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)
(ответ Stack Overflow утверждает, что это происходит в строке 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
блоке и добавил следующие строки:Тогда просто беги
./data_pack.py
. Предполагается, что онchrome_100_percent.pak
находится в текущем каталоге и должен дать вам новыйchrome_100_percent_new.pak
файл, который вы можете попытаться скопировать/opt/google/chrome/chrome_100_percent.pak
.Я полагаю, что некоторые дополнительные значки в пакете ресурсов, связанные со значком уведомления, были идентифицированы; редактирование вышеупомянутого, чтобы включить те, должно быть довольно простым.
Окончательное редактирование
Теперь, когда я вернулся домой и имел возможность еще немного поработать над этим, мне удалось успешно заменить значок уведомления Chrome. Как заметил @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 закрыт, и еще раз проверить, не запущены ли процессы chrome, и я считаю, что в chrome есть новый параметр, разрешающий фоновые процессы, даже если браузер по умолчанию закрыт сейчас.И вот, мои значки уведомлений в Unity отражают мои изменения.
Окончательно-финальное редактирование: ОК, я солгал - я попытался 32x32 PNG, и, похоже, он работал нормально. Итак, поехали. Вот некоторые результаты скриншотов.
(Источник: пакетные иконки от Адама Уиткрофта)
источник
Редактировать:
Похоже, проблема была с
node-chrome-pak
. Модификация rocketman10404data_pack.py
работает нормально, даже с иконками 32px:Пожалуйста, используйте его инструкции вместо этого.
Оригинальный ответ :
Отличный ответ @ rocketman10404 привел меня к node-chrome-pak , скрипту node.js, который может упаковать, распаковать и заменить определенные ресурсы в
.pak
файлах Chrome / ium .Хотя мне удалось заменить значки уведомлений
chrome_100_percent.pak
этим инструментом, я должен сообщить, что не смог сделать изменения видимыми. Тем не менее, я думаю, что стоит приложить усилия, чтобы наметить шаги, которые я предпринял, чтобы добиться этого. Надеюсь, кто-то еще возьмется за это и найдет способ заставить его работать.Установка node.js
node-chrome-pak
для запуска потребуется node.js. Вы можете установить последнюю версию, добавив PPA-файл nodejs Криса Ли:Скачивание скрипта и распаковка ресурсов Chrome
Загрузите скрипт:
Скопируйте ваш локальный
chrome_100_percent.pak
поверх:Распакуйте
.pak
файл:Выявление и изменение значков уведомлений
Последнее действие создаст новую папку с именем
./extracted
. В нем вы найдете все ресурсы, содержащиеся в пак-файле. Они названы в честь их идентификатора ресурса. Вы захотите сохранить это имя, так как оно важно для переупаковки файлов.Трудная часть сейчас заключается в определении правильных значков. Если я не полностью ошибаюсь, следующие файлы должны быть те, которые используются в systray:
Определив значки, которые вы искали, вы можете приступить к их изменению и замене. Если вы хотите, вы можете использовать иконки, которые я создал для этой цели:
Исходные файлы и экспортированные файлы
.png
в разных разрешениях размещаются на GitHub .Вот первое ограничение, которое я обнаружил: если вы замените значки изображением с любым разрешением, превышающим исходное, Google Chrome будет поврежден и перестанет работать должным образом . Для этого конкретного проекта вам придется остаться с разрешением 16x16. По сути, это означает, что вы не сможете значительно улучшить текущие значки системного окна, даже если этот метод будет работать.
Конечно, есть вероятность, что это ограничение было введено так, как
node-chrome-pak
было задумано. Возможно, можно будет заменить значки на более крупные, если вы создадите собственный скрипт на python, основанный на ответе @ rocketman10404.Переупаковка ресурсов и замена существующих
После изменения / замены существующих значков вам нужно будет создать обновленный
pak
файл ...... и использовать его для замены существующего:
Суть этого метода
В моих попытках я не смог заставить Chrome показывать обновленные иконки. Даже если я удостоверился, что все значки были заменены правильно и фактически присутствуют в измененном
pak
файле (распаковав его снова), я все равно не смог бы заменить действительный значок в системном окне.К сожалению, я понятия не имею, почему это так.
источник