Não é possível iniciar o aplicativo no tmux

11

Eu recebo este erro quando tento iniciar o Sublime Text ou o SourceTree do tmux:

$ subl
Unable to launch Sublime Text 2

$ stree
Unable to open SourceTree

Parece que não consigo abrir os aplicativos x:

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

Estou usando o Yosemite OS X 10.10 (14A388a), o iTerm 2 com zsh, tmux 1.0a. Tive o mesmo problema usando o bash. Alguma idéia do que está acontecendo?

    
por Benjamin Cheah 01.11.2014 / 04:42

3 respostas

15

Update: Este procedimento é desnecessário com o tmux > = v2.6

Eu encontrei um postado por Brendon Rapp descrevendo uma solução que não requer muitos aliases.

$ brew install reattach-to-user-namespace

Adicione a seguinte linha ao final do seu arquivo ~ / .tmux.conf:

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

Crie um arquivo chamado ~ / .tmux-osx.conf com o seguinte conteúdo:

set-option -g default-command "reattach-to-user-namespace -l bash"
  • A solução acima permite que o mesmo arquivo .tmux.conf funcione corretamente no Linux e OS X. Se você usa apenas o OS X, você pode simplesmente adicionar a opção 'default-command' diretamente ao seu ~ / .tmux.conf.

  • Se você usar um shell diferente de bash, substitua 'bash' por seu shell após a opção '-l'.

por 15.04.2015 / 17:25
7

Eu tive o mesmo problema com o tmux e corrigi-lo com o namespace de nome de usuário do e os aliases do shell .

  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

Não é elegante, mas funciona.

    
por 22.11.2014 / 15:32
0

Descobri que adicionar isso aos meus aliases não funcionou para mim se eu ainda não estivesse em uma sessão tmux (ou seja, ocorreu um erro se eu estivesse apenas em uma sessão nativa, tmux -less iTerm ).

Se você quiser configurar apenas esse alias quando estiver em uma sessão do tmux, tente isso:

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

Você pode precisar de echo $TERM dentro de uma sessão tmux para ver para o que sua variável de ambiente $TERM está configurada. O meu foi realmente screen-256color , então eu troquei o valor acima apropriadamente.

Boa sorte!

    
por 30.11.2014 / 16:42