I use GNU Screen constantly. But, I've been trying to figure out if there is someway to get X11 apps to forward over screen when I am ssh-ing (Is that a word?). Currently if I try to run 'gedit' through screen, it opens on my 'server' computer and not on my client. If I do the same outside of screen, then everything is fine. But I want everything to be fine when I use screen too!
Thanks!
PS: I have googled the problem and I see mention of xmove, but I can't seem to find the package that contains xmove on my ubuntu. (ubuntu 10.10)
To manually do this, once you have SSHed in, but before you reattach to screen, check your DISPLAY environment variable:
Once you have re-attached to screen, explicitly set the environment variable:
where :N.0 is what the
echo
showed before the attach. This won't be perfect, since some application may be expecting to talk to the Session D-Bus, which is a bit more complex to send over the SSH connection.there's a program called xpra in the repositories, it's like gnu screen for x11. it's not too hard to work with:
X Persistent Remote Applications
Xpra gives you the functionality of GNU Screen for X applications.
It allows the user to view remote X applications on their local machine, and disconnect and reconnect from the remote machine without losing the state of the running applications.
Byobu automatically reattaches ssh and gpg agents. I could make it reattach the display variable to, if that's helpful to you...
This is how I got it working when running byobu
Add this line in .bash_login before the "_byobu_source.." line:
And then add this line to .bashrc:
It seems that the problem is that the environment variable XAUTHORITY is not preserved in the screen session. I solved this by adding the following to my .bashrc. I didn't think this should be necessary but I guess you do what you must:
I don't expect this to be the best solution, or the most concise, but it works.
FreeNX is a wonderful app for working with remote displays.
Based on @harre suggestion, I found this to be the best working solution, at least for RHEL via Putty. I know there's a better way than to create a file that holds the var, but this works out of the gate to get
X11
to have access to theDISPLAY
when loaded viagnu screen
.Automated Solution
Add to
.bashrc
(or.bash_profile
, depending on your use case)Then add the following file(or your path choice)