让 Telegram 拥有完美的 Breeze 风格托盘图标

源码酱:你的 Telegram 圖標是如何做到黑白的(
ME:明日说吧(好困
傅立叶老师:皮老师,明天到了

不听话的 Telegram

所有使用过 KDE 的伙伴们大概都曾注意到过设计风格高度统一的 Breeze 图标集(不像某 G,这对于强迫症患者来说,是非常之舒适的;

然而,然而,然而,当你启动了 Telegram,并因为需要日常水群而不得不把它放在托盘的显示区而非隐藏区域的时候,你会得到这样的效果。

Western SPY!!!

即使 Breeze 图标集里已经提供了可供 Telegram 使用的托盘图标,即使这只 Telegram 周围都是血统纯正的 Breeze 图标,但这只 Telegram 依然坚守自己独特的审美,使用自己的默认图标,让人不得不怀疑它是不是 Western Spy

去强迫症化

为了将其去强迫症化,将其培养成根正苗红的 Breeze 接班人(跑题了,我们需要研究它到底从何处获取了这些图标。经过一番并不十分顺利的调查,我发现 Telegram 实际上在从 ~/.local/share/TelegramDesktop/tdata/ticons/ 读取它应该使用的图标。

这些图标命名方法十分暴力:ico_22_未读消息数量.pngicomute_22_静音消息数量.png。试着删掉一些,你会发现,一旦 Telegram 需要相应的图标,它就会自己用默认风格生成一个(怪不得无论多少消息它总是能显示对应数字的图标!)。

找到问题的关键,接下来就是解决它。鉴于我的艺术能力并不好(可以说是十分低下了),我选择从别人那里挑选适合 Breeze 风格的图标

图标可以说是十分完美了,但还存在一个严重的问题:预先帮我们做好的 PNG 只提供到下标 99,但对于我们这类网络社交动物(也许是植物,谁知道呢,随时都有可能破千的未读消息数目。那时,Telegram 会照旧帮我们生成旧的风格,然后破坏整个托盘的协调性。不慌,使用 Shell 迅速解决问题:

1
2
3
4
for i in $(seq 100 9999); do
cp ico_22_99.png ico_22_$i.png
cp icomute_22_99.png icomute_22_$i.png
done

如此一来,就基本不用担心 Telegram 的未读消息数量超过预期了。反正本来也只到 9+,暴力拷贝应该不成问题。

应用新图标,重开 Telegram

将包含有新图标的目录重命名为 ticons,删掉 ~/.local/share/TelegramDesktop/tdata/ticons/ 目录并将我们的新图标目录移过去,重启你的 Telegram。

舒!爽!