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を使用しても同じ問題が発生しました。何が起こっているのか分かりますか?
更新:これは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」をシェルに置き換えます。
Tmuxでも同じ問題が発生し、 reattatch-to-user-namespace とシェルエイリアスでパッチを適用しました。
$ brew install reattach-to-user-namespace
$ vi ~/.bash_aliases
alias subl='reattach-to-user-namespace subl'
alias stree='reattach-to-user-namespace stree'
alias open='reattach-to-user-namespace open'
$ source ~/.bash_aliases
エレガントではありませんが、機能します。
まだtmux
セッションに参加していない場合、これをエイリアスに追加しても機能しないことがわかりました(つまり、裸のtmux
-にいる場合はエラーが発生しました)より少ないiTermセッション)。
Tmuxセッション中にのみこのエイリアスを設定する場合は、代わりにこれを試してください。
if [ "$TERM" = "screen" ] && [ -n "$TMUX" ]; then
alias stree="reattach-to-user-namespace stree"
fi
echo $TERM
環境変数が何に設定されているかを確認するには、tmuxセッション内で$TERM
する必要がある場合があります。私のは実際にはscreen-256color
だったので、上記の値を適切に交換しました。
幸運を!