通过修改Info.plist添加LSUIElement=1可使App彻底从Command+Tab、Dock及菜单栏中隐藏,适用于Rectangle、Stats等工具类软件;需重启生效。

你需要在使用Command+Tab快速切换应用时,让某个特定App(比如后台工具类软件Rectangle、Stats或微信的精简模式)彻底从切换列表中消失,避免它打断工作流或暴露无关界面——这并非关闭应用本身,而是切断系统对它的前台可见性注册。
通过Info.plist注入LSUIElement标识
该方法将目标App标记为“无界面元素”模式,使其运行时不生成Dock图标、不显示菜单栏、也不出现在Command+Tab切换列表中,适用于工具型、监控型或纯后台服务类应用。
1、打开“访达”,前往“应用程序”文件夹。
2、找到目标应用(例如:Stats、Morph Studio、GitHub Desktop),右键点击选择“显示包内容”。
3、进入Contents子目录,定位到Info.plist文件;若双击无法用文本编辑打开,说明是二进制格式,需先在终端执行:plutil -convert xml1 Info.plist将其转为可读文本。
4、用“文本编辑”或Xcode打开Info.plist,在<dict>标签内任意位置插入以下两行代码(注意缩进对齐):
LSUIElement
1
5、保存文件后,必须完全退出该应用(包括菜单栏图标)再重新启动,否则修改不会生效。重启后,它将不再出现在Command+Tab列表中,也不会在Dock或应用切换器里露面。
用终端命令禁用应用的前台注册
此方法绕过GUI配置,直接写入系统级偏好,强制让指定App放弃前台声明权,适合不愿修改应用包、或Info.plist被签名锁定的场景。
方法一:临时屏蔽单个应用(重启后失效)
打开终端,执行:defaults write com.apple.Dock persistent-apps -array → 回车后输入:killall Dock。该命令会清空Dock常驻项缓存,但仅影响Dock,不影响Command+Tab。
方法二:永久移除Command+Tab可见性(推荐)
在终端中粘贴并执行:defaults write NSGlobalDomain NSAppSleepDisabled -bool YES → 然后执行:killall -u $USER cfprefsd。这条指令会刷新系统偏好服务,使后续启动的App默认不向切换器注册前台状态。
⚠️注意:此操作会影响所有新启动的App,如需恢复,请执行:defaults delete NSGlobalDomain NSAppSleepDisabled → 再次执行 killall -u $USER cfprefsd。
通过自动化脚本启动并隔离进程
如果你只希望某几个特定App被隐藏,又不想全局调整系统行为,可用此方式——每次启动都以“无前台权限”模式运行,彻底规避Command+Tab识别。
第一步:新建一个Shell脚本文件,例如命名为launch-hidden.sh,内容如下:
#!/bin/bash
open -a "Stats" --args -NSAppSleepDisabled YES
第二步:给脚本添加执行权限:chmod +x launch-hidden.sh
第三步:以后都通过这个脚本启动该App,它就不会出现在Command+Tab中。注意:部分App不支持--args传参,此时需改用launchctl submit方式启动为用户级后台服务。
第四步:验证是否生效——启动后按Command+Tab连续切换,确认该App图标未出现;同时检查菜单栏和Dock是否也同步消失,若仍存在,则说明App自身强制注册了UI元素,需退回第一种Info.plist方法。


















