在不同的桌面上打开应用程序


2

我试图在我的MacBook上的另一个桌面上打开一个应用程序(macOS Sierra版本10.12.5)。

在屏幕截图中,我将Chrome分配到了不同的空间(桌面1)。我转到桌面2,当我点击Chrome图标时,我会自动切换到桌面1.我怎么能留在桌面2上?

Chrome已分配给桌面1

编辑

也许日志很有帮助。哪个进程会触发桌面切换? 控制台 - 所有消息


如果您将Chrome指定给桌面1,则当您点击Chrome图标时,您将进入您为该应用程序指定的桌面。如果您不希望将其分配给桌面1,则只需选择无。这就是你要找的东西吗?
fsb

@fsb不,我想静默打开应用程序,即不切换到不同的桌面。
安迪

如果您在桌面2上,然后点击Chrome图标,则必须切换到桌面1,因为您已将 Chrome分配到桌面1.我认为您希望它在桌面1中打开,而您仍然在桌面2上不同的应用。那是对的吗?
fsb

@fsb是的,确切地说!这就是我要找的
安迪

1
这看起来很有前途 - cnet.com/uk/news / ... - 但它似乎在El Capitan中不起作用:/
Tetsujin

Answers:


2

来自评论 - 因为这似乎适用于OP,但我无法让自己在El Capitan工作。

在OS X中打开时保持应用程序免受关注 - 由Topher Kessler [至少它有一个很好的血统,但是从2011年开始]

要使程序始终在后台打开,您需要编辑程序包中的属性列表并向该文件添加几行。为此,请按照以下说明操作:

  1. 找到相关程序的应用程序包文件。

  2. 右键单击并选择“显示包内容”。

  3. 导航到应用程序中的“Contents”目录,然后在文本编辑器中打开“Info.plist”文件。

  4. 将以下行添加到文件中(最简单的位置是将它们放在<dict>标记之后<key>,位于文档顶部的第一个标记之前):

    <key>LSBackgroundOnly</key>
    <string>True</string>
    
  5. 保存并关闭该文件,然后关闭应用程序包窗口

执行此操作后,程序现在应始终在其他程序后面启动,然后只有在单击程序窗口时才会将其置于前面。作为警告,编辑应用程序的内容将破坏其代码签名,这是某些应用程序自动使用应用程序防火墙等系统服务所必需的。如果没有完整的代码签名,系统可能始终要求您在应用程序启动时允许应用程序通过防火墙,这可能会带来一些不便。此外,这可能不适用于所有应用程序,但它不能轻松删除添加的行以恢复程序的完整功能。

影响启动程序的第二个选项是开发一个将在后台启动它的脚本。此脚本的基础是使用“open”终端命令,以下列方式使用“-g”标志(以iCal为例):

open -g /Applications/iCal.app

作为向应用程序提供完整路径名的替代方法,您也可以使用“-a”标志,然后仅提供应用程序名称,例如:

open -ga iCal

使用这些命令,您可以使用AppleScript或Automator为程序设置启动程序,其中脚本将此命令作为shell脚本运行,以定位所选应用程序。例如,要创建始终在后台启动iCal的脚本,请打开Automator并创建新的应用程序工作流。然后将“运行shell脚本”操作添加到工作流,并将上述命令之一粘贴到操作的脚本字段中。然后保存工作流程,当您运行它时,iCal应该在您当前的应用程序后面打开。

一个警告似乎是应用程序无法正确关闭,即关闭它后它的进程仍然存在。


2

我在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

谢谢你的回答,但我已经尝试过了......似乎根本没有考虑这个选项。另一个设置会覆盖此选项吗?
安迪

您是否尝试打开指定的应用程序?你没有在优胜美地上自动交换?
安迪

@andy:你不觉得提到你已经尝试过的东西会有帮助吗?
JC

可能是的,但我猜这些信息会吓跑一些人
安迪

2

在将应用程序分配到桌面时,我使用“none”选项获得了所需的性能。但是,如果应用程序在另一个桌面上打开,如果您尝试打开该应用程序的另一个实例,则会被带到该桌面。我不知道为此做些什么。请确保不要在您想要的桌面以外的桌面上打开应用程序。如果有一个解决方法可能另一个响应者会知道。


是的,一旦打开应用程序并将其分配到特定桌面,我就可以实现此行为,例如open -nF /Applications/Google\ Chrome.app/在另一个桌面上的终端中。但我不想让应用程序始终运行。
安迪

当然,只需确保只从正确的桌面打开它。我没有选择Sierra选择桌面来分配它。
jmh17年

哦等等,我可以选择分配哪个桌面。您可以转到某个桌面,然后使用分配到此桌面。对不起
jmh

是的,但如果您单击应用程序图标两次仍会出现问题。实际上,我想在不同的桌面空间上打开和关闭应用程序..但这还有很长的路要走,但是
Andy
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.