-gと-jは、どちらもアプリケーションを起動してもフォーカスを奪わないオプションだが、ウィンドウの見え方が異なる。
-gでフォアグラウンドに来ないようにする
-gは、アプリケーションを起動するがフォーカスを現在のアプリケーションから移さない。
$ open -g -a Calculator
Calculatorは起動してウィンドウも表示されるが、フォアグラウンドには来ない。System Eventsで確認すると次のようになる。
$ osascript -e 'tell application "System Events" to get visible of process "Calculator"'
true
visibleはtrueのままで、ウィンドウ自体は表示されている。
-jでアプリを隠した状態で起動する
-jは、アプリケーションを起動した直後から隠す(command + Hを押した状態と同等)。
$ open -j -a Calculator
$ osascript -e 'tell application "System Events" to get visible of process "Calculator"'
false
-jではvisibleがfalseになり、Dockにはアイコンが表示されるがウィンドウは非表示のままになる。
使い分け
| オプション | フォーカス | ウィンドウの可視性 |
|---|---|---|
-g | 奪わない | 表示される |
-j | 奪わない | 非表示 |
作業の妨げにならないようバックグラウンドで準備だけさせたいアプリには-j、起動はさせたいが操作は後回しにしたい場合は-gが向いている。
参考
open command - Open a file, folder or URL\第一線のプログラマーの行動原理を学べる!/
