我试图在我的MacBook上的另一个桌面上打开一个应用程序(macOS Sierra版本10.12.5)。
在屏幕截图中,我将Chrome分配到了不同的空间(桌面1)。我转到桌面2,当我点击Chrome图标时,我会自动切换到桌面1.我怎么能留在桌面2上?
编辑
我试图在我的MacBook上的另一个桌面上打开一个应用程序(macOS Sierra版本10.12.5)。
在屏幕截图中,我将Chrome分配到了不同的空间(桌面1)。我转到桌面2,当我点击Chrome图标时,我会自动切换到桌面1.我怎么能留在桌面2上?
编辑
Answers:
来自评论 - 因为这似乎适用于OP,但我无法让自己在El Capitan工作。
从在OS X中打开时保持应用程序免受关注 - 由Topher Kessler [至少它有一个很好的血统,但是从2011年开始]
要使程序始终在后台打开,您需要编辑程序包中的属性列表并向该文件添加几行。为此,请按照以下说明操作:
找到相关程序的应用程序包文件。
右键单击并选择“显示包内容”。
导航到应用程序中的“Contents”目录,然后在文本编辑器中打开“Info.plist”文件。
将以下行添加到文件中(最简单的位置是将它们放在
<dict>
标记之后<key>
,位于文档顶部的第一个标记之前):<key>LSBackgroundOnly</key> <string>True</string>
保存并关闭该文件,然后关闭应用程序包窗口
执行此操作后,程序现在应始终在其他程序后面启动,然后只有在单击程序窗口时才会将其置于前面。作为警告,编辑应用程序的内容将破坏其代码签名,这是某些应用程序自动使用应用程序防火墙等系统服务所必需的。如果没有完整的代码签名,系统可能始终要求您在应用程序启动时允许应用程序通过防火墙,这可能会带来一些不便。此外,这可能不适用于所有应用程序,但它不能轻松删除添加的行以恢复程序的完整功能。
影响启动程序的第二个选项是开发一个将在后台启动它的脚本。此脚本的基础是使用“open”终端命令,以下列方式使用“-g”标志(以iCal为例):
open -g /Applications/iCal.app
作为向应用程序提供完整路径名的替代方法,您也可以使用“-a”标志,然后仅提供应用程序名称,例如:
open -ga iCal
使用这些命令,您可以使用AppleScript或Automator为程序设置启动程序,其中脚本将此命令作为shell脚本运行,以定位所选应用程序。例如,要创建始终在后台启动iCal的脚本,请打开Automator并创建新的应用程序工作流。然后将“运行shell脚本”操作添加到工作流,并将上述命令之一粘贴到操作的脚本字段中。然后保存工作流程,当您运行它时,iCal应该在您当前的应用程序后面打开。
一个警告似乎是应用程序无法正确关闭,即关闭它后它的进程仍然存在。
我在Yosemite尝试了但不在Sierra中,但您可以尝试禁用桌面自动切换。
打开终端并输入:
defaults write com.apple.dock workspaces-auto-swoosh -bool NO
重启Dock
killall Dock
要还原为默认设置类型
defaults write com.apple.dock workspaces-auto-swoosh -bool YES
killall Dock
在将应用程序分配到桌面时,我使用“none”选项获得了所需的性能。但是,如果应用程序在另一个桌面上打开,如果您尝试打开该应用程序的另一个实例,则会被带到该桌面。我不知道为此做些什么。请确保不要在您想要的桌面以外的桌面上打开应用程序。如果有一个解决方法可能另一个响应者会知道。
open -nF /Applications/Google\ Chrome.app/
在另一个桌面上的终端中。但我不想让应用程序始终运行。