有没有办法从cmd + tab菜单中隐藏某些应用程序?


39

有没有办法从cmd+ 隐藏某些应用程序tab

我面临的问题是我总是打开某些应用程序(例如iTunes,当然还有Finder)。但是,当我使用cmd+ tab在与我相关的应用程序(Chrome,Sublime,Terminal)之间切换时,我总是会在菜单中看到这些“不相关的”应用程序。

谢谢

Answers:


37

是的,这是可能的,但是据我所知,这样做的唯一方法还隐藏了停靠图标。

您必须修改应用程序包中的名为“ Info.plist”的文件(即Sherlock.app/Contents/Info.plist)。在您喜欢的文本编辑器中打开此文件,并添加以下部分(如果已经存在,只需在字符串标签中将0更改为1):

<key>LSUIElement</key>
<string>1</string>

来源:隐藏任何程序的Dock图标-Macworld Mac OS X提示

在最新版本的macOS中,不应为LSUIElement设置字符串。相反,您需要使用如下所示的布尔值:

<key>LSUIElement</key>
<true/>

在OS X 10.8之前,请改用它(注意NS而不是LS):

<key>NSUIElement</key>
<string>1</string>

效果比预期更好的圣烟,非常感谢!
2013年

1
两个评论。首先,上述[STRING]格式在10.8中将不起作用-您需要使用布尔类型。其次,除了从应用程序切换器中隐藏应用程序之外,修改NSUIElement还将隐藏菜单栏,因此使用“隐藏”应用程序变得相当困难。
肯特,

您在Mavericks中使用LSUIElement有运气吗?
13年

2
是的,我下载了此更新,他们现在通过其v1.4.2版本本地支持该更新。github.com/binaryage/totalterminal/issues/...
atreat

4
在小牛里,这让我崩溃了。我已经尝试了几种不同的应用程序。
2014年

7

您可以在Info.plist中将LSUIElement设置为1作为字符串:

<key>LSUIElement</key>
<string>1</string>

它从应用程序切换器,Dock和强制退出窗口中删除应用程序。它还会删除菜单栏,因此它实际上不适用于Finder或iTunes。

编辑Info.plist会使TextEdit和Chess之类的某些应用程序在10.8中启动时崩溃。它也会使已签名应用程序的代码签名失效,因此不允许它们自动访问钥匙串。

http://www.cocoabuilder.com/archive/cocoa/141753-lsuielement-and-lsbackgroundonly.html

NSUIElement已贬值。但是,我清楚地记得几年前在Apple(Apple DTS)工作时,NSUIElement和LSUIElement映射到同一件事(至少当我在那里时,它确实回来了,我怀疑那会改变)。尽管NSUIElement已贬值(当然,NS代表下一步!而LS代表启动服务),但就所有意图和目的而言,它们都是完全相同的。

LSUIElement和NSUIElement仍然可以使用,也都可以设置为true或1作为整数。

grep -A1 [LN]SUIElement /Applications/*/Contents/Info.plist

信息属性列表键参考:启动服务键

LSUIElementString-OS X)指定该应用程序是否作为代理应用程序运行。如果此键设置为“ 1”,则启动服务将该应用程序作为代理应用程序运行。代理程序应用程序不会出现在Dock或“强制退出”窗口中。尽管它们通常是作为后台应用程序运行的,但是如果需要,它们可以成为前台来呈现用户界面。在属于代理应用程序的窗口上单击,将使该应用程序前进以处理事件。

Dock和loginwindow是作为代理应用程序运行的两个应用程序。

女巫可以选择忽略应用程序:

我刚刚禁用了应用程序切换器和Dock。我主要使用键盘快捷键和Alfred来切换应用程序。


LSUIElement在Slack的info.plist中进行设置会导致它在启动时崩溃。
泰勒·埃德米斯顿

3

免责声明:我开发了GhostTile

简短的答案:只需尝试GhostTile即可。虽然已付费,但是您可以尝试的尽可能长(从Sublime Text中窃取想法)

长答案:

AFAIK,有两种方法可以实现此目的:
1.将应用程序设置为代理。例如,将LSUIElement密钥添加到App的Info.plist或将App的激活策略设置为NSApplicationActivationPolicyAccessory
2. Hook Dock或其他相关系统进程忽略某些应用程序。感谢El Captian的SIP(Rootless)。不建议这样做。

GhostTile专注于从Dock隐藏应用程序。它易于使用,并提供多种方式来管理您隐藏的应用程序。没有磁盘上的修改,因此您不会破坏应用程序的代码签名。

其它功能:

  • 您仍然可以收到有关该应用程序的Dock活动的通知
  • 暴露样的概述
  • 阿尔弗雷德·工作流程

只是尝试这个程序,并没有我想的应用是“尚不支持”。Finder,Mail,iOS Simulator ...
pkamb

1
@pkamb很抱歉,您尝试使用的所有应用程序都受到El Capitan中引入的系统集成保护(SIP)的保护。您可以尝试其他第三方应用程序吗?或关闭SIP?
hewigovens

足够公平,感谢您的回答。我建议您提供更多有用的错误消息或常见问题解答的链接!
pkamb

如何在Cmd + Tab启动器中隐藏Ghost标题?我尝试将<key> NSUIElement </ key> <string> 1 </ string>添加到Info.plist并重新启动应用程序。它没有用
Mac

@mac有一个名为“从码头隐藏GhostTile”的优先选项
hewigovens

1

抱歉,聚会晚了,但是确实如先前的回答和评论所述,这可能会使某些应用程序在启动时崩溃。尽管我曾经能够在另一台Mac上使它工作,但是我无法在优胜美地进行这项工作。更改TotalTerminal Info.plist并没有做任何事情,并且更改了Applications/Utilities/Terminal/Info.plist导致崩溃的原因。

作为@atreat在评论中提及了,从球员TotalTerminal现在支持这种隐藏通过一个简单的命令:

defaults write com.apple.Terminal TotalTerminalHideDockIcon -bool YES

这对我来说非常有效。


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.