編集:通知アイコンの置換に関する更新については、以下を参照してください
クロムバイナリを通常の場所にインストールしている場合は、にあります/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
これにより、現在のディレクトリに多数の新しいファイルが作成され、すべて拡張子なしの番号が付けられます。ファイルブラウザ(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
、上記で詳細に説明した変更を行った後、再実行しました。
元のpakのバックアップコピーを保存しmv /opt/google/chrome/chrome_100_percent.pak /opt/google/chrome/chrome_100_percent.bak
、変更した.pakファイルをその場所に移動しました。これを行うときはchromeが閉じられていることを確認し、実行中のchromeプロセスがないことを再確認します。そして、chromeには、ブラウザがデフォルトで閉じられていてもバックグラウンドプロセスを許可する新しい設定があると思います。
見よ、Unityの通知アイコンは私の変更を反映しています。
最後に最終編集: OK、嘘をつきました-32x32 PNGを試しましたが、うまく機能したようです。それで、そこに行きます。ここでいくつかの結果のスクリーンショット。
- 元のアイコン:ドロップボックスと天気アイコンの間にあるパネルのデフォルトの「未読通知なし」アイコンをおそらく認識します。
- 新しいアイコン:同じ場所にある32x32pxの修正版:
(出典:Adam Whitcroftのバッチアイコン)
/usr/share/icons
いる場合に役立ちます、