如何隐藏优胜美地上的Spotlight图标,但保留Spotlight功能?


62

我在OS X中使用Spotlight,并且长期以来不喜欢将其附加到菜单栏。

现在,在优胜美地,被召唤时,Spotlight在屏幕中间显示为叠加层,这与其他启动器实用程序(如Quicksilver或Alfred)非常相似。但是,即使单击它,Spotlight图标现在仍显示在我的菜单栏中,它显示了一个完全分离的叠加层。

传统的禁用搜索图标(chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search)的方式也完全禁用了Spotlight。我想保留Spotlight功能,但是要杀死(现在已经无用的)菜单栏图标,因为我可以使用Cmd + Space召唤Spotlight。

我也尝试过Bartender,它可以工作,但价格昂贵(删除图标要15美元!)而且很古怪(启动需要一段时间,所以我的菜单栏在登录后最多可移动一分钟)

删除Spotlight图标的最佳方法是什么?


尚未测试,似乎有些过时,但问题是相同的,答案已被标记并接受。superuser.com/a/32802/375410
jherran,2015年

1
@jherran:不幸的是,这不能解决问题。我仍然希望能够使用Cmd + Space启动Spotlight叠加层。
nneonneo 2015年

Answers:


36

所以我受够了,并决定用困难的方式解决它。

我找到了Spotlight在何处初始化状态栏项目,然后将状态栏大小修补为零。这需要编辑Spotlight二进制文件。(请注意,这Search.bundle只是加载到其中的小存根SystemUIServer以允许Spotlight.app控制状态栏)。

您必须使用终端执行一些命令。

对于OS X 10.10(Yosemite):

cd /System/Library/CoreServices/Spotlight.app/Contents/MacOS
sudo cp Spotlight Spotlight.bak
sudo perl -pi -e 's|(\x48\xb8\x00\x00\x00\x00\x00\x00)\x42\x40(\x48\x89\x47\x10\x48\xB8\x00\x00\x00\x00\x00\x00\x36\x40)|$1\x00\x00$2|sg' Spotlight
cmp -l Spotlight Spotlight.bak 
sudo codesign -f -s - Spotlight
sudo killall Spotlight

对于OS X 10.11(El Capitan):

cd /System/Library/CoreServices/Spotlight.app/Contents/MacOS
sudo cp Spotlight Spotlight.bak
sudo perl -pi -e 's|(\x00\x00\x00\x00\x00\x00\x47\x40\x00\x00\x00\x00\x00\x00)\x42\x40(\x00\x00\x80\x3f\x00\x00\x70\x42)|$1\x00\x00$2|sg' Spotlight
cmp -l Spotlight Spotlight.bak 
sudo codesign -f -s - Spotlight
sudo killall Spotlight

cmp -l行应打印出如下内容:

248855   0 102
248856   0 100

如果未打印任何内容,则补丁失败。我已经在OS X 10.10.3(Yosemite)和OS X 10.11.5(El Capitan; SIP off)上进行了测试。

该修补程序正在执行的操作是将状态栏宽度值(36.0或浮点十六进制中的0000000000004240)替换为零,以便在加载状态栏项时,它仅以零宽度呈现,即不可见且不显示不会影响栏的布局。

进行此破解之前的屏幕截图:

骇客之前

进行此破解后的屏幕截图:

骇客之后

菜单图标消失了,但是Cmd + Space继续工作。


要还原,请执行以下操作:

cd /System/Library/CoreServices/Spotlight.app/Contents/MacOS
sudo mv Spotlight.bak Spotlight
sudo killall Spotlight

这看起来确实很棒,但是对于我们中间那些不太懂终端的人,如果我们愿意,可以请您添加说明如何恢复正常吗?
user24601

3
添加了这些说明。
nneonneo 2015年

1
此后,聚光灯不再启动。 $ codesign -f -s - Spotlight Spotlight: replacing existing signature Spotlight: bundle format unrecognized, invalid, or unsuitable
Rnhmjoj

1
Spotlight:替换现有签名Spotlight:无法识别,无效或不合适的捆绑格式在子组件中:/System/Library/CoreServices/Spotlight.app/Contents/XPCServices/com.apple.metadata.SpotlightNetHelper.xpc
Jarno

2
尽管我不得不暂时禁用系统完整性保护(stackoverflow.com/a/32661637/1252653),以便我可以复制Spotlight可执行文件,但它仍然对Sierra有效。
tinystride

16

我建议使用称为Bartender的实用程序。http://www.macbartender.com

这是一个方便的实用程序,用于管理和更改菜单栏图标的显示方式。您可以将它们留在菜单栏中,将其放到调酒师栏中,调酒师本身是通过菜单栏中的小图标打开的,但是可以将菜单中的任何图标正常放置在菜单栏中,或者将其全部隐藏。

您可以在此处查看屏幕截图:

在此处输入图片说明


6
我确实说过我不想使用Bartender,但无论如何还是要感谢您的指导。
nneonneo 2014年

5
在(OSX和Bartender的最新版本中都不再起作用:-(
Strinder

2
更新:如果您采用这种方式,则可以工作stackoverflow.com/questions/31640732/…–
Strinder

与Sierra兼容?
丹尼尔·斯普林格

酒保如何在世界上那样藏起来……
丹尼尔·斯普林格

11

我最终删除了图标和Spotlight搜索功能,现在我改用Alfred了;它更快,更免费(带有您通常不需要的付费扩展)。

不会停止删除索引服务的Spotlight可见应用程序(和图标),仅停止图形用户界面,即+ 时顶部菜单顶部栏中的图标和“搜索”窗口都停止Space。这就是为什么您需要另一个应用程序来访问这些索引的原因,例如Alfred。

因此,以下将权限更改为Search不可执行的命令。

sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search

如前所述,它并未完全禁用Spotlight,仅删除了Spotlight的图形用户界面。

如果不只是重新启动,注销并重新登录可能就足够了。


您可以使用此命令将其还原

sudo chmod 755 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search

同样,您必须注销或重新启动。

此方法仍适用于10.10.3。


这种方法可能不完全是问题所要解决的问题,但它具有限制操纵螺钉上升的优点。仅更改文件许可权比更改程序的二进制文件容易得多。只是为了不向Spotlight图标显示Spotlight的二进制文件。


4
我这样做是(在优胜美地),但是现在我也无法使用键盘快捷键来触发聚光灯!我不得不sudo chmod 755 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Searchkillall SystemUIServer退回。
拉胡尔·塔库尔

@RahulThakur是的,这就是答案,alfred成为主要的搜索工具,但它使用了聚光灯索引。此外,阿尔弗雷德(Alfred)也有一个选择与他一同推出ctrl+space
Brice

1
好的,但是我只想删除图标,而不要删除功能。还是谢谢你。
拉胡尔·塔库尔

好。调酒师也许是最好的选择。但您可能绝对想尝试一下alfrred。特别是关于苹果使用聚光灯时泄漏的信息。
布莱斯(Brice)

只是因为这对我完全杀死了Spotlight,所以不得不使用sudo chmod 755 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search并重新启动以对其进行修复。
狄龙(Dillon)2014年


2

与Bartender或Vanilla不同,推土机是另一个完全免费的应用程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.