/ icon

【技巧】关于系统设置图标的修改

有些插件作者不善美工或不拘小节,所以对于图标这类与主要功能无关的细节常常忽略。有些插件虽然在系统设置中有设置项,却没有图标,看起来有点突兀。我们看看除了写邮件给作者反映问题以外,还有什么能做的。

一、概述

插件如果在系统设置内有选项,通常他们是依赖于PreferenceLoader 的,根据Preferences的规范,会加载 //Library/PreferenceLoader/Preferences目录下的.plist 文件,并根据文件内容形成系统设置项。

Tips:所以只需要将这些.plist文件的扩展名改掉,比如改成.plist0 这个设置项在系统设置内就隐藏了,但插件功能不受影响,如图所示:

隐藏

二、详解

言归正传。打开插件在PreferenceLoader 目录下的配置文件。可见其中的两个字符串变量:icon 和 label 分别对应下图以Safari Downloader 为例(上图可见,他也是没图标的),其中的icon部分作者非常幽默地填了:MabyeIAddThisLater.png

我们随便拷个58*58的图标到//Library/PreferenceLoader/Preferences 并改名为MabyeIAddThisLater.png,看看效果。

02

文件名没有@2x导致图标按原尺寸显示了,把.plist内的文件名和图标文件名同时改成MabyeIAddThisLater@2x.png就ok了。

03

当然,为了避免下次插件升级的时候需要再次更改,还是老实点,用29*29的图标,文件名就不要改了。

  • 需要注意的是,有些插件设置的图标默认不是在这个目录,而是在 /Library/PreferenceBundles 目录下对应插件名称的目录里。在调用的时候无需使用目录全名,比如插件【 TransparentCameraBar】图标名只写着TCB.png 实际上他使用的是 /Library/PreferenceBundles/TransparentCameraBarSettings.bundle/TCB.png。这些设置有个特点,.plist文件内有bundle字符串,指定bundle文件夹名称。

04

总结一下,其实本文介绍的是如何自由替换系统设置内各项的图标。 :)