편집 : 알림 아이콘 교체에 대한 업데이트는 아래를 참조하십시오
크롬 바이너리가 일반적인 위치에 설치되어 있으면에서 찾을 수 있습니다 /opt/google/chrome
. 해당 폴더 chrome_100_percent.pak
에는 알림 아이콘이 포함 된 파일 이 있습니다. 이 스택 오버플로 질문의 정보를 사용하여 추출하는 데 사용한 단계는 다음과 같습니다 .
받는 코드를 체크 아웃 모래 - 국제화 프로젝트 와
svn checkout http://grit-i18n.googlecode.com/svn/trunk/ grit-i18n-read-only
이것은 CWD에이라는 폴더를 제공합니다 grit-i18n-read-only
. 이 폴더에 CD
cd grit-i18n-read-only
data_pack python 모듈을이 폴더에 복사하십시오
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
크롬 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의 배치 아이콘 )
/usr/share/icons
도움이된다면 아이콘이에 저장 됩니다