Au travail, j'ai un bureau avec un moniteur et quelques sessions tmux en cours d'exécution. À la maison, je ssh fréquemment sur ce bureau et saisis mes sessions tmux en cours d'exécution. Quand je ssh à la maison, je ne pas veux utiliser X11, donc je ne pas utiliser le -X
drapeau. Lorsque je retourne au travail (après avoir quitté ma maison) et que j'utilise ces sessions tmux sur le bureau, je ne peux plus rien faire qui engendrerait une interface graphique. Je ne peux pas ouvrir de fichiers dans evince. Lorsque j'essaie d'utiliser matplotlib, je reçois un : cannot connect to X server
message.
Après avoir créé et ouvert une session tmux à partir de la maison, comment puis-je rattacher plus tard la possibilité d'ouvrir des éléments GUI sur le bureau?
Le ssh'ing de la maison semble faire oublier à la session tmux qu'elle peut engendrer des choses GUI.
ÉDITER:
-X
drapeau maintenant ou non? Vous ne pouvez faire des choses X11 via SSH que si cela est défini.Réponses:
Il me suffit de définir la variable d'environnement DISPLAY sur: 0.0. Je pense que le problème est que j'utilise la coquille de poisson, et je dois utiliser l'indicateur -x pour définir ce faisant:
la source
DISPLAY
peut être différente de:0.0
. Un moyen rapide de le découvrir est de créer une nouvelle fenêtre tmux etecho $DISPLAY
là.echo $DISPLAY
est revenulocalhost:10.0
et courir aset DISPLAY localhost:0.0
fait l'affaire.bash
équivalente ou cross-shell?set -x
augmente juste la verbosité pour moibash
. @IsaacS, avez-vous dû le faire à laset DISPLAY localhost:10.0
place oulocalhost:0.0
avez-vous travaillé pour vous?export DISPLAY=:0.0
.$DISPLAY
?J'ai eu le même problème. J'utilise normalement
tmux
dans le cadre d'un environnement de bureau X11 multi-écrans, et parfois ssh depuis un Chromebook, qui ne prend pas en charge X11 ou Set$DISPLAY
. La réponse de @chrisdembia fonctionne, mais nécessite de changerDISPLAY
dans chaque nouvelle fenêtre pour le reste de la session tmux, ce qui est pénible.Une solution permanente consiste à supprimer
DISPLAY
de laupdate-environment
variable tmux dans les paramètres tmux. Vous pouvez voir votre valeur actuelle avec cette commande:Pour le supprimer, j'ai ajouté cette ligne à mon
~/.tmux.conf
fichier, y compris tout saufDISPLAY
:Ceci est expliqué plus en détail dans Réinitialiser la variable shell DISPLAY dans une session tmux sur ssh , ce qui explique pourquoi
DISPLAY
il y en a par défaut, pour un cas d'utilisation courant différent.la source