如何打开新窗口作为Chrome,终端的单独应用程序实例?


18

从Linux(OpenBox WM)迁移到MBP,我正在努力恢复以前的生产力水平。杀死它的一件事是OSX坚持要在“应用程序”和“窗口”之间进行分配,并分配不同的密钥组合以在两者之间切换,每个都有自己的旋转行为(叹气)。由于OSX坚持在每次切换到应用程序X的所有窗口时将其置于最前面,因此情况变得更糟。我经常遇到以下情况:我有两个或多个Chrome窗口和两个或多个终端窗口,每个窗口组跨越整个桌面空间,但是我不能同时在每个窗口中同时出现一个。

其他限制:我不想将窗口移动到单独的工作区(或所谓的工作区),只是为了与它们一起工作。我宁愿不使用鼠标,但愿意这样做会解决我的问题(在上述情况下不会)。

可能解决我的问题的一件事就是能够将我关心的应用程序(Chrome,终端)的新窗口作为单独的实例启动。这将使我可以在它们之间任意切换,而不必强行将它们移到最前面。

有人知道在优胜美地做到这一点的方法吗?非常感谢!


1
老实说,切换回Linux :-)几个月来,我遇到了与您相同的问题,也无法解决。终于管理好了吗?
flindeberg '16

Answers:


15

您可以使用open命令尝试以下语法:

open -na "Google Chrome"

其中-n参数将打开一个新实例,即使一个实例已经在运行。

添加额外内容--user-data-dir将在单独的配置文件目录中启动实例,例如

open -na "Google Chrome" --args --user-data-dir="$PWD/Foo"

使用--profile-directory可以更改默认配置文件名称。


这肯定会打开一个新窗口,但我无法确定这是一个新实例。我期望任务切换器中有多个Chrome图标。我最终发现一个应用程序可以执行以下操作:bahoom.com/hyperswitch
kraftydevil

我不确定为什么您的系统没有显示新实例。当我使用open -nSafari或Forklift(例如)开始新实例时,它们作为新版本(以及活动监视器)显示在Dock和应用程序切换器中。如果您正在寻找替代的应用程序切换器,那么您可能想要的是Witch by Many Tricks。它允许通过应用程序以及窗口进行切换。
达斯汀·惠勒

5
嗯,这似乎与Chrome有所不同……我系统上的多个应用程序(iTerm,Safari,Forklift)开始了新实例,但是Chrome似乎吞噬了新实例(活动监视器在open运行命令时显示了一个新实例,然后它会迅速消失,新窗口将成为原始Chrome实例的子进程。
达斯汀·惠勒

11

好吧,对于一般情况和Chrome来说,完整的答案是:

对于大多数应用程序,使用open -naF "App Name"或启动open -nF /path/to/application.app就足够了(请参阅Safari,Forklift,Office应用程序等)。

  • -n 打开一个新实例
  • -a告诉open您查看已注册应用程序的列表(无需指定完整路径,但是如果您有一个应用程序的多个版本,则可能会出错。有时我会在系统上看到区分macOS应用程序和Parallels OS安装的应用程序的问题…我更喜欢直接指定路径。)
  • -F 打开一个新实例(忽略以前实例剩余的应用保存状态)

对于谷歌浏览器,需要稍有不同(从本博客文章的源进行了修改)。必须从命令行启动Chrome,并在其中--user-data-dir=/tmp/dir设置标志"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"(指定您自己的目录…如果仅需要两个实例,则最好是建立一个永久的第二个主目录,但是如果您需要一个任意数量,则最好创建一个shell函数,创建一个随机的临时目录,然后在退出时将其删除)。

使用此方法会在我的计算机上导致多个Chrome实例,并阻止Chrome在同一主进程下将其合并。

顺便说一句,您可能希望在Shell函数中合并其他标志以启动Chrome。此处提供了广泛的列表(自动更新)。


2

最简单的方法是open -n命令

例如 open -n /Applications/Chrome.app/


1
谢谢。不幸的是,这没有达到预期的效果...借助Chrome,它确实打开了一个新窗口,但是它与已经在运行的实例相关联。使用Terminal,它创建了一个新实例,该实例复制了运行中实例的窗口(非常奇怪的方式)。不确定如何进行此处,请进一步咨询。
garnold

此后,我不确定,抱歉。我只使用Spaces并在工作设置之间切换,具体取决于我在做什么。
Tetsujin

复制行为可能与OS X 10.7中引入的“恢复”功能有关。您可以使用命令在每个应用程序的基础上禁用它defaults write,或者可以将-F标志与open例如 open -nFa "Terminal")一起使用以打开应用程序的“新”实例(检查man页面是否打开)。
达斯汀·惠勒

1

您(最终)必须最终从Terminal执行该应用程序。

您可以使用open -nTerminal中的命令(如@Tetsujin所述),也可以在应用程序包中单击可执行文件(通常在中Application/Contents/MacOS/

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.