在Mac上有些时候我们不希望某些app在Dock上显示图标,但是app本身并没有提供关闭的选项。比如有些开机后台运行的程序,有些不需要UI的程序,亦或者仅仅因为图标太难看了=.=
设置的原理是修改app的plist使之以agent方式运行[1]:
1. 完全退出你想设置的app,并将它的图标从Dock上拖走;
2. 在Finder里点右键,“显示包内容”;
3. 将 Contents/Info.plist 拖到桌面(这一步是为了防止权限问题导致修改失败);
4. 双击桌面上的Info.plist,在其中添加一个名为 LSUIElement 的Key,雪豹系统会自动更名成 Application is agent (UIElement),并生成一个 Boolean 值,把它勾上,保存文件。如图(以HardwareGrowler为例):
5. 把修改过的plist拖回原来位置。如果跳出系统警告,可点击“鉴定”,输入管理员密码即可。
至此可以启动程序查看效果了。顺带一题,以这种方式运行的程序是不能通过左上角的Apple菜单强制退出的[2],请使用“实用工具”里的“活动监视器”。
[1] HardwareGrowler Documentation. Growl Team. http://growl.info/documentation/hardwaregrowler.php
[2] Information Property List Key Reference – Mac OS X Developer Library. Apple Inc. http://developer.apple.com/library/mac/#documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW1