Chrome、ターミナルの個別のアプリケーションインスタンスとして新しいウィンドウを開く方法


17

Linux(OpenBox WM)からMBPに移行して、慣れていた生産性のレベルを回復するのに苦労しています...それを殺している特定のことの1つは、OSXが「アプリケーション」と「ウィンドウ」を分離し、異なるキーを割り当てていることですどちらかを切り替えるには、それぞれ独自の回転動作(ため息)があります。OSXは、アプリケーションXに切り替えるたびにアプリケーションXのすべてのウィンドウを前面に表示することを要求するため、さらに悪化します。各グループがデスクトップスペース全体にまたがる2つ以上のChromeウィンドウと2つ以上のターミナルウィンドウがある状況にしばしば遭遇しますが、同時にそれぞれを1つ持つことはできません。

その他の制約:作業できるように、ウィンドウを個別のワークスペース(または呼ばれるもの)に移動したくない。私はマウスを使いたくないのですが、それが私の問題を解決するなら喜んで使います(上記の場合はそうしません)。

私の問題を解決するかもしれないことの1つは、気になるアプリケーション(Chrome、Terminal)の新しいウィンドウを個別のインスタンスとして起動できることです。これにより、それらを前面に強制することなく、それらを任意に切り替えることができます。

ヨセミテでそれを行う方法を知っている人はいますか?どうもありがとう!


1
正直に言うと、Linuxに切り替えてください。最終的に管理しましたか?
flindeberg

回答:


14

openコマンドを使用して次の構文を試すことができます。

open -na "Google Chrome"

どこ-nのパラメータは1がすでに実行されている場合でも新しいインスタンスを開きます。

追加を追加--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が欲しいかもしれません。これは、アプリとウィンドウの切り替えを可能にします。
ダスティンウィーラー

4
ああ、これはChromeに関連する何か違うようです...私のシステム上の複数のアプリ(iTerm、Safari、Forklift)は新しいインスタンスを開始しますが、Chromeは新しいインスタンスを飲み込むようです(Activity Monitorはopenコマンドの実行時に新しいインスタンスを表示し、すぐに消え、新しいウィンドウは元のChromeインスタンスのサブプロセスになります)。
ダスティンウィーラー

9

OK、一般的な場合、特にChromeの完全な答え:

ほとんどのアプリケーションでは、起動するopen -naF "App Name"open -nF /path/to/application.app、それで十分です(Safari、Forklift、Officeアプリなどを参照)。

  • -n 新しいインスタンスを開きます
  • -aopen登録済みアプリのリストを確認するように指示します(フルパスを指定する必要はありませんが、アプリの複数のバージョンがある場合は間違っている可能性があります。macOSアプリとParallels OSによってインストールされたアプリを区別する際にシステムで問題が発生することがあります...パスを直接指定することを好みます。)
  • -F 新しいインスタンスを開きます(以前のインスタンスから残ったアプリの保存状態を無視します)

Google Chromeの場合、若干異なるものが必要です(このブログ投稿のソースから変更)。Chromeは、--user-data-dir=/tmp/dirフラグを設定してコマンドラインから起動する必要が"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"あります(独自のディレクトリを指定します... 2つのインスタンスのみが必要な場合は、おそらく恒久的な2番目のホームを作成するのが最善ですが、任意の番号が必要な場合は、シェル関数を作成するのが最善ですランダムな一時ディレクトリを作成し、終了時に削除します)。

この方法を使用すると、マシン上に複数のChromeインスタンスが作成され、Chromeが同じマスタープロセスでそれらを統合できなくなります。

ちなみに、Chromeを起動するためのシェル関数に追加のフラグを組み込むこともできます。詳細な(自動更新された)リストはこちらから入手できます


2

最も簡単な方法はopen -nコマンドです

例えば open -n /Applications/Chrome.app/


1
ありがとう。残念ながら、これには予期した効果がありませんでした... Chromeでは、実際に新しいウィンドウが開きましたが、既に実行中のインスタンスに関連付けられていました。ターミナルを使用して、実行中のインスタンスのウィンドウを複製する新しいインスタンスを作成しました(非常に奇妙な方法で)。ここでの進め方がわからないので、さらなるアドバイスを歓迎します。
ガーノルド

その後は本当にわかりませんが、ごめんなさい。Spacesを使用し、作業内容に応じて作業セットアップを切り替えます。
鉄人

レプリケーションの動作は、OS X 10.7で導入された再開機能に関連している可能性があります。コマンドを使用してアプリごとに無効にするdefaults write-Fopenたとえば open -nFa "Terminal")フラグを使用してアプリの「新鮮な」インスタンスを開くことができます(開いているmanページを確認します)。
ダスティンウィーラー

1

(最終的に)ターミナルからアプリケーションを実行する必要があります。

open -nターミナルからコマンドを使用するか(@Tetsujinが述べたように)、アプリケーションパッケージ内で実行可能ファイルをクリックします(通常はApplication/Contents/MacOS/)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.