Как заменить значок уведомления о низком разрешении Google Chrome?

В Unix-подобных системах есть два выходных пути, которые, если оставить неизмененным, будут отправлять выходные данные на ваш экран. Стандартная ошибка (или stderr) - это та, которая фиксирует большинство отказов и условий ошибки.

Чтобы передать сообщение об отказе в разрешении в stderr в тот же выходной поток, что и «регулярный вывод», вы должны объединить эти два. В вашем примере, чтобы ваш grep -v правильно работал на нем, вы комбинируете stdout (стандартный вывод) и stderr с тайным синтаксисом, который вы видите.

Из раздела руководства GNU Bash 3.2.2 Трубопроводы:

Если используется «|&», стандартная ошибка command1, в дополнение к ее стандартным выводам, подключается к стандартным входам команды 2 через трубу; это сокращение для 2>&1 |. Это неявное перенаправление стандартной ошибки на стандартный вывод выполняется после любых переназначений, указанных в команде.

Кроме того, как указывает Geirha, если вы хотите просто избавиться от вывода stderr, вы хотели бы сделать что-то вроде

find -name 'myfile.*' 2> /dev/null

или, возможно,

find -name 'myfile.*' 2> /tmp/errorlog

И обратите внимание, что если у вас есть команды команд, например find, передающие свой вывод на xargs, вам нужно будет поместить весь конвейер команд в круглые скобки, чтобы захватить вывод из всех компонентов команды. Например,

(find | egrep ^[RS].[0-9]+/.svg] | xargs head -1 )  2> /dev/null

Если вы оставили круглые скобки и сделали это вместо этого -

find | egrep ^[RS].[0-9]+/.svg] | xargs head -1 2> /dev/null

, вы все равно увидели бы, что разрешения отклонили ошибки из find или egrep, но stderr было бы перенаправлено на xargs.

Как вы видели, вы, вероятно, выбросите stderr только после просмотра его содержимого во время тестового прогона.

Обратите внимание, что с GNU find и, насколько я могу судить, любой POSIX-совместимый find, -print вариант неявный. Вы по-прежнему можете указать его, если хотите.

1
задан 25 May 2014 в 01:10

1 ответ

Изменить:

Похоже, проблема была в node-chrome-pak. Изменен data_pack.py rocketman10404, даже с 32px-значками:

Вместо этого используйте его инструкции.

[d1 ] Редактировать: :

@ отличный отзыв от rocketman10404 привел меня к его инструкциям , сценарию node.js, который может упаковывать, распаковывать и заменять определенные ресурсы в Chrome / ium's .pak.

Хотя мне удалось заменить значки уведомлений в chrome_100_percent.pak этим инструментом, я должен сообщить, что я не смог сделать изменения видимыми. Тем не менее я считаю, что стоит потратить усилия, чтобы изложить шаги, которые я предпринял, чтобы понять это. Надеюсь, кто-то еще это рассмотрит и найдет способ заставить его работать.

Для установки node.js

node-chrome-pak понадобится node.js. Вы можете установить последнюю версию, добавив узлы Chris Lea nodejs PPA:

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

Установка node.js

Загрузите скрипт:

[ f2]

Скопируйте локальный 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. Они названы в честь их идентификатора ресурса. Вы захотите сохранить это имя, так как это важно для переупаковки файлов.

В настоящее время сложная часть заключается в определении правильных значков. Если я не совсем ошибаюсь, то следующие файлы должны использоваться в systray:

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

После определения значков, которые вы искали, вы можете перейти к их изменению и замене. Если вы хотите, вы можете использовать значки, которые я создал для этой цели:

enter image description here                                              

Исходные файлы и экспортированные .png s в разных разрешениях размещены в GitHub.

Вот первое ограничение, которое я нашел: Идентификация и изменение значков уведомлений . Для этого конкретного проекта вам придется оставаться с разрешением 16x16. Фактически это означает, что вы не сможете значительно улучшить текущие значки systray, даже если вы хотите, чтобы этот метод работал.

Конечно, существует вероятность того, что это ограничение было введено способом [ f17]. Возможно, можно заменить значки более крупными, если вы создадите собственный скрипт python, основанный на ответе @ rocketman10404.

Переупаковка ресурсов и замена существующих

После изменения / замены в существующих значках вам нужно будет создать обновленный файл 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

Переупаковка ресурсов и замена существующих

В моих попытках я не смог заставить Chrome показывать обновленные значки. Даже если я убедился, что все значки были правильно заменены и фактически присутствуют в модифицированном файле pak (путем распаковки его снова), я все еще не смог заменить фактический значок в systray.

К сожалению, я понятия не имею, почему это так.

8
ответ дан 24 May 2018 в 07:28

Другие вопросы по тегам:

Похожие вопросы: