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


11

Sublime TextまたはSourceTreeをtmuxから起動しようとすると、このエラーが発生します。

$ subl
Unable to launch Sublime Text 2

$ stree
Unable to open SourceTree

OS Xアプリも開けないようです:

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

Yosemite OS X 10.10(14A388a)、zshを搭載したiTerm 2、tmux 1.0aを使用しています。bashを使用して同じ問題を抱えていました。何が起こっているのでしょうか?


tmuxの問題だけではありません。bashおよびzsh / oh-my-zshでも同じです。それは働いていた
JB Rainsberger

回答:


15

更新:これは、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"
  • 上記のソリューションにより、LinuxとOS Xの両方で同じ.tmux.confファイルが正しく機能します。OSXのみを使用する場合は、〜/ .tmux.confに「default-command」オプションを直接追加できます。

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


7

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

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


2
ドキュメントによると、ちょうどあなたにこれを追加します~/.tmux.confset-option -g default-command "reattach-to-user-namespace -l zsh"
nicerobot

0

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

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

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

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

幸運を!

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