Atomをコマンドから起動したときに別プロセスにしない方法(Mac向け)

  • 10
    Like
  • 0
    Comment

最近Atomを使い出したけど、atomコマンドから起動する場合と、SpotlightやFinderから起動する場合とでプロセスが別になる現象があって困ってた。ググったら解決したので記録。

atomコマンドを使わない

$ atom .

これだと別プロセスになるけど、

$ open -a Atom .

これなら同一プロセスの別ウィンドウになる。

というわけで、.bashrcなり.zshrcなりに

alias atom="open -a Atom"

を登録しておけばOK。

tmuxを使っている場合

tmux内でopen -a AtomするとLSOpenURLsWithRole()エラーになってしまう模様。

.tmux.confに以下を追記すればこのエラーは回避できる。

# Fix LSOpenURLsWithRole() error on OS X. Requires reattach-to-user-namespace
# to be installed.
set-option -g default-command "which reattach-to-user-namespace > /dev/null && reattach-to-user-namespace -l $SHELL || $SHELL"

追記

.tmux.confでこれを設定してあっても、時々以下のような変な動作をしていた。

  1. すでにAtomのプロセスが存在している状態で
  2. atom .などしてウィンドウを立ち上げようとすると、別プロセスで起動してしまう
  3. 一度、新しい方のプロセスを殺して再度atom .しようとすると
  4. それ以降何度やってもLSOpenURLsWithRole()になる

理屈は全く理解してないけど、
https://github.com/atom/atom/issues/3093#issuecomment-263667546
これを参考に

- alias atom="open -a Atom"
+ alias atom="open -a /Applications/Atom.app/Contents/MacOS/Atom"

としたら、どうやらこの現象も回避されたっぽい。

参考