Chrome의 저해상도 알림 아이콘을 바꾸려면 어떻게해야하나요?


15

Chrome은 최근 Ubuntu 14.04 설치에서 버전 35.0.1916.114로 업그레이드되었습니다.

그 이후 알림 아이콘이 시스템 트레이에 표시되기 시작했습니다. 그러나 저해상도 아이콘을 사용하고있는 것 같습니다-왜곡 된 것처럼 보입니다.

여기에 이미지 설명을 입력하십시오

수정 / 교체하려면 어떻게해야합니까?


1
/usr/share/icons도움이된다면 아이콘이에 저장 됩니다
MrVaykadji

@ MrVaykadji : 도움 주셔서 감사합니다! 해당 디렉토리를 살펴 보았지만 Chrome 알림 아이콘을 찾을 수 없습니다. 나는 그것들이 다른 디렉토리에 있다고 생각합니다.
fabiomaia

1
아마도 /opt? Google 바이너리가 설치된 곳입니다.
MrVaykadji

2
제길. Google-Chrome은 오픈 소스가 아니기 때문에 하드 코딩 된 경우 (바이너리 내부에 있음) 해당 아이콘을 변경할 수 없습니다. catfish예를 들어 이름에 "크롬"이 포함 된 모든 파일 이나 디스크 전체를 검색 할 수있는 다른 방법을 살펴볼 수도 있습니다 .
MrVaykadji

1
이 알림 아이콘은 3 가지 이상의 점에서 잘못되었습니다. 사용자 기본 설정을 존중하지 않습니다. 우분투 색상을 존중하지 않습니다. 정말 낮은 해상도를 사용하고 있습니다.
Rael Gugelmin Cunha 2016 년

답변:


14

편집 : 알림 아이콘 교체에 대한 업데이트는 아래를 참조하십시오

크롬 바이너리가 일반적인 위치에 설치되어 있으면에서 찾을 수 있습니다 /opt/google/chrome. 해당 폴더 chrome_100_percent.pak에는 알림 아이콘이 포함 된 파일 이 있습니다. 이 스택 오버플로 질문의 정보를 사용하여 추출하는 데 사용한 단계는 다음과 같습니다 .

  1. 받는 코드를 체크 아웃 모래 - 국제화 프로젝트

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

  2. 이것은 CWD에이라는 폴더를 제공합니다 grit-i18n-read-only. 이 폴더에 CD

    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크롬 pak 파일 에서 유틸리티를 실행하십시오 ( grit-i18n-read-only먼저 폴더에 복사했습니다 ).

    ./data_pack.py ../chrome_100_percent.pak

이로 인해 현재 디렉토리에 많은 새 파일이 생성되며 모두 확장명이없는 숫자로 명명됩니다. 파일 브라우저 (예 : 노틸러스)가 파일 형식을 결정하고 이미지 축소판을 표시 할 수 있어야합니다. 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.

알림 아이콘과 관련하여 리소스 pak에서 일부 추가 아이콘이 식별되었다고 생각합니다. 그것들을 포함하도록 위의 편집은 매우 간단해야합니다.


최종 편집

집으로 돌아와서 더 많은 일을 할 수 있었으므로 크롬의 알림 아이콘을 성공적으로 교체했습니다. @Glutanimate이 지적했듯이 16x16 해상도로 고착되어 있으므로 실제로 얼마나 많은 개선을 이룰 수 있는지 잘 모르겠지만 주관적이라고 생각합니다.

김프에서 앞서 언급 한 아이콘 (6864-6867)을 열면 그레이 스케일 PNG로 감지됩니다. 김프에서 동일한 파일에 새 아이콘을 붙여 넣어 동일한 이미지 속성 (예 : 그레이 스케일)을 유지하려고했습니다. 그런 다음 김프에서 제공하는 모든 옵션의 선택을 해제하고 압축 수준은 9로 유지하면서 PNG로 내보냈습니다. 결과 파일의 확장자는 .png이므로 파일을 제거하고 원본을 바 꾸었습니다. 그런 다음 data_pack.py위에서 자세히 수정하여 다시 실행했습니다 .

원래 pak의 백업 사본을 보관하고 mv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bak수정 된 .pak 파일을 그 자리로 옮겼습니다. 이 작업을 수행 할 때 크롬이 닫혀 있는지 확인하고 크롬 프로세스가 실행되고 있지 않은지 다시 확인하십시오. 크롬에는 브라우저가 기본적으로 닫혀 있어도 백그라운드 프로세스를 허용하는 새로운 설정이 있다고 생각합니다.

보라, Unity의 알림 아이콘은 변경 사항을 반영합니다.

마지막으로 최종 편집 : 좋아, 거짓말-32x32 PNG를 시도했지만 정상적으로 작동하는 것 같습니다. 그래서 당신은 간다. 다음은 몇 가지 결과 스크린 샷입니다.

  • 원본 아이콘 : 여기 내 드롭 박스와 날씨 아이콘 사이의 기본 '읽지 않은 알림 없음'아이콘이 여기에 표시 될 것입니다.

원본 아이콘

  • 새 아이콘 : 같은 위치에있는 32x32px 수정 된 버전 :

새로운 아이콘

(출처 : Adam Whitcroft의 배치 아이콘 )


업데이트 해 주셔서 감사합니다! data_pack.py에서 32px 아이콘이 제대로 작동하는지 확인할 수 있습니다. 모든 알림 아이콘을 설명하기 위해 게시 한 스 니펫을 수정했습니다. 나는 당신이 상관하지 않기를 바랍니다.
Glutanimate

1
FWIW에서는이 방법을 사용하여 알림 시스템을 비활성화하지 않고 표시기를 완전히 제거 할 수도 있습니다 (예 : askubuntu.com/a/473416/81372 ).
Glutanimate

메이트, 튜토리얼을 약간 정리하면 기쁠 것이다 ... data.py의 모든 수정이 필요한가? 약간 혼란 스러워요. 공격이 없다는 의미는 아닙니다.
deckoff

1
좋은 해킹. 추가하려면 여기에서 더 많은 아이콘을 찾으십시오. thenounproject.com/search/?q=bell
gc5

Chrome 36 이상에서 아이콘은 6894 ... 6897
gc5

8

편집하다:

에 문제가있는 것 같습니다 node-chrome-pak. rocketman10404의 수정 data_pack.py은 32px 아이콘에서도 잘 작동합니다.

여기에 이미지 설명을 입력하십시오

사용하십시오 그의 지시를 대신.


원래 답변 :

@ rocketman10404의 탁월한 답변 으로 Chrome / ium 파일 의 특정 리소스를 압축, 압축 풀기 및 교체 할 수있는 node.js 스크립트 인 node-chrome-pak.pak있습니다.

chrome_100_percent.pak이 도구로 알림 아이콘을 대체했지만 변경 사항을 볼 수 없다는보고를해야합니다. 그래도이 시점을 달성하기 위해 취한 단계를 간략히 설명하는 것이 좋습니다. 다른 누군가가 이것을 받아 들여 실제로 작동시키는 방법을 찾을 수 있기를 바랍니다.

node.js 설치

node-chrome-paknode.js를 실행해야합니다. Chris Lea의 nodejs PPA를 추가하여 최신 버전을 설치할 수 있습니다.

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

스크립트 다운로드 및 Chrome 리소스 압축 풀기

스크립트를 다운로드하십시오.

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 파일에 포함 된 모든 리소스가 있습니다. 자원 ID의 이름을 따서 명명됩니다. 파일을 다시 패키지하는 데 중요하므로이 이름을 유지하려고합니다.

어려운 부분은 이제 올바른 아이콘을 식별하는 데 있습니다. 완전히 실수하지 않은 경우 다음 파일은 시스템 트레이에 사용 된 파일이어야합니다.

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

찾고있는 아이콘을 식별 한 후에는 아이콘을 수정하고 교체 할 수 있습니다. 원하는 경우이 목적으로 만든 아이콘을 사용할 수 있습니다.

      

      

.png다른 해상도로 소스 파일과 내 보낸 파일 은 GitHub 에서 호스팅 됩니다.

내가 찾은 첫 번째 제한은 다음과 같습니다 . 아이콘을 원래 Chrome보다 높은 해상도의 이미지로 바꾸면 제대로 작동하지 않습니다 . 이 특정 프로젝트의 경우 16x16 해상도를 유지해야합니다. 실제로 이는이 방법을 사용하더라도 현재 시스템 트레이 아이콘을 크게 개선 할 수 없음을 의미합니다.

물론이 제한이 의도 한대로 도입되었을 가능성이 node-chrome-pak있습니다. @ 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파일 에 실제로 존재하는지 확인한 후에도 (파일을 다시 풀면) 여전히 시스템 트레이의 실제 아이콘을 교체 할 수 없었습니다.

불행히도 나는 이것이 왜 그런지 모른다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.