web-dev-qa-db-ja.com

tmuxでアプリケーションを起動できません

TmuxからSublimeTextまたはSourceTreeを起動しようとすると、次のエラーが発生します。

$ subl
Unable to launch Sublime Text 2

$ stree
Unable to open SourceTree

私もosxアプリを開くことができないようです:

$ open MPlayerX.app
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/MPlayerX.app.

Yosemite OS X 10.10(14A388a)、iTerm 2とzsh、tmux1.0aを使用しています。 bashを使用しても同じ問題が発生しました。何が起こっているのか分かりますか?

11
Benjamin Cheah

更新:これはtmux> = v2.6 では不要な手順です

Brendon Rappによる投稿 多くのエイリアスを必要としないソリューションを説明していることがわかりました。

$ brew install reattach-to-user-namespace

〜/ .tmux.confの最後に次の行を追加します。

if-Shell 'test "$(uname)" = "Darwin"' 'source ~/.tmux-osx.conf'

次の内容の〜/ .tmux-osx.confという名前のファイルを作成します。

set-option -g default-command "reattach-to-user-namespace -l bash"
  • 上記のソリューションでは、同じ.tmux.confファイルがLinuxとOS Xの両方で正しく機能します。OSXのみを使用する場合は、「default-command」オプションを〜/ .tmux.confに直接追加できます。

  • Bash以外のシェルを使用する場合は、「-l」スイッチの後に「bash」をシェルに置き換えます。

15
Jon Nalley

Tmuxでも同じ問題が発生し、 reattatch-to-user-namespace とシェルエイリアスでパッチを適用しました。

  1. $ brew install reattach-to-user-namespace
  2. $ vi ~/.bash_aliases

    alias subl='reattach-to-user-namespace subl'
    alias stree='reattach-to-user-namespace stree'
    alias open='reattach-to-user-namespace open'
    
  3. $ source ~/.bash_aliases

エレガントではありませんが、機能します。

7
e9t

まだtmuxセッションに参加していない場合、これをエイリアスに追加しても機能しないことがわかりました(つまり、裸のtmux-にいる場合はエラーが発生しました)より少ないiTermセッション)。

Tmuxセッション中にのみこのエイリアスを設定する場合は、代わりにこれを試してください。

if [ "$TERM" = "screen" ] && [ -n "$TMUX" ]; then
  alias stree="reattach-to-user-namespace stree"
fi

echo $TERM環境変数が何に設定されているかを確認するには、tmuxセッション内で$TERMする必要がある場合があります。私のは実際にはscreen-256colorだったので、上記の値を適切に交換しました。

幸運を!

0
Noah Chase