No trabalho, tenho uma área de trabalho com um monitor e algumas sessões de tmux em execução. Em casa, frequentemente ssh nessa área de trabalho e entro em minhas sessões de tmux em execução. Quando ssh em casa, não quero usar o X11, portanto não uso a -X
bandeira. Quando volto ao trabalho (depois de ssh'ing de casa) e uso essas sessões do tmux na área de trabalho, não posso mais fazer nada que geraria uma GUI. Não consigo abrir arquivos no evince. Quando tento usar o matplotlib, recebo uma : cannot connect to X server
mensagem.
Após ssh'ing e abrir uma sessão tmux existente a partir de casa, como eu recolojo posteriormente a capacidade de abrir coisas da GUI na área de trabalho?
O ssh'ing de casa parece fazer a sessão tmux esquecer que pode gerar coisas da GUI.
EDITAR:
-X
bandeira agora ou não? Você só pode fazer coisas X11 através do SSH se estiver definido.Respostas:
Tudo o que preciso fazer é definir a variável de ambiente DISPLAY para: 0.0. Eu acho que o problema foi que eu estou usando o shell de peixe e preciso usar o sinalizador -x para definir ao fazer isso:
fonte
DISPLAY
pode ser diferente de:0.0
. Uma maneira rápida de descobrir é criar uma nova janela do tmux eecho $DISPLAY
lá.echo $DISPLAY
voltoulocalhost:10.0
e correrset DISPLAY localhost:0.0
fez o truque.bash
versão equivalente ou cross-shell?set -x
apenas aumenta a verbosidade para mimbash
. @IsaacS, você teveset DISPLAY localhost:10.0
quelocalhost:0.0
trabalhar ou trabalhou para você?export DISPLAY=:0.0
.$DISPLAY
?Eu tive o mesmo problema. Normalmente, uso
tmux
como parte de um ambiente de área de trabalho X11 com vários monitores e, às vezes, ssh de um chromebook, que não é compatível com X11 ou definido$DISPLAY
. A resposta de @chrisdembia funciona, mas requer alteraçõesDISPLAY
em cada nova janela para o restante da sessão do tmux, o que é uma dor.Uma solução permanente é remover
DISPLAY
daupdate-environment
variável tmux nas configurações do tmux. Você pode ver seu valor atual com este comando:Para removê-lo, adicionei esta linha ao meu
~/.tmux.conf
arquivo, incluindo tudo, excetoDISPLAY
:Isso é explicado em Redefinir a variável DISPLAY do shell em uma sessão tmux sobre ssh , o que explica por que
DISPLAY
existe por padrão, para um caso de uso comum diferente.fonte