Remote X has been a life saver over this past year

March 17, 2021

It's now been a bit over a year since I was last regularly in the office (due to still ongoing events). One of the things that has turned out to be really important to working productively from home has been the X Window System's remote support (and SSH's support for X forwarding too, let's not forget that side). Especially, what has been important for me isn't just being able to run GUI programs in some way from a remote host, but being able to have them as regular windows on my desktop instead of corralled off into their own seperate 'remote desktop' world.

(This is on my mind recently because I've been reading another round of people saying that we all have to move to Wayland real soon now. Although apparently Wayland now has some sort of general forwarding in the form of waypipe, although there doesn't seem to be much written on the Internet about experience with it.)

The largest thing remote X has let me do is keep on using my normal email environment, which relies on exmh, xlbiff, and sam. To be productive, all of these need to run in separate X windows on my desktop that I can shift around in various ways (and so that xlbiff can appear on any virtual screen I'm on and then quietly disappear), not in a single giant remote session window. General remote X also lets me have the remote exmh send URLs in email to my local Firefox through Firefox's X based remote control. As a sysadmin a lot of my work involves interacting with email and while things aren't quite as fluid as they would be at work, they're a lot better than they would be without exmh.

(If I didn't have remote X, I probably would have tried to switch to MH-E in GNU Emacs, since that could be used through a text mode SSH session. This would have at least been a bunch of yak shaving.)

The other big thing has been that my home Internet connection is good enough to run VMWare from my work desktop over remote X. Being able to spin up virtual machines as usual has been essential for testing and developing all sorts of things under conditions where doing this with real hardware is difficult and infrequent. I could not have done this on my home machine, and doing it over some sort of RDP or VNC session would have been at least awkward and possibly too bandwidth intensive for my DSL connection.

(VMWare machines can have their consoles accessed over VNC, but most of what I deal with is the regular VMWare GUI for managing VMs. I have my VMs set up so that most of the time I only need to interact with them over SSH, although developing and testing our Ubuntu 20.04 install image did require console access. Since my remote VMWare doesn't scale up the VM consoles when displaying on my local HiDPI display, the less I have to interact with the consoles the better. The usual environment variables affect the VMWare GUI but not the actual consoles.)

I've periodically used an assortment of other X programs remotely. The biggest one is GNU Emacs, which I use as my superintelligent code editor if I'm seriously digging into some program. Modern LSP-based smart code editing in Emacs really wants to be run on a graphical display; it will try to work in a pure text environment, but it just doesn't go very well. If I'm doing any serious Go editing, I need either a remote X session for GNU Emacs or to drag the Go code over to my local machine.

Of course I was already heavily using remote X at work; my normal email environment has always run on one of our login servers, not my office desktop, for example. But this past year of working from home I've generally tried to do as much as possible through SSH sessions (because they're more tolerant of my slower network), and that's really driven home the places where remote X has really mattered.

(It's interesting to look back at my entry from several years ago about what I really miss when I don't have remote X and tick off the things that I made work versus the things that I miss but not enough to do anything about. Perhaps I should make it a habit to run all of my remote logins as 'ssh -X' sessions so that I could at least spawn a new xterm from them if I wanted to, even if I mostly used the initial text mode SSH logins.)

Written on 17 March 2021.
« The fading HTTP Referer header and (Google) Search paywall bypasses
Safari is now probably the influential wild card browser for user privacy »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Wed Mar 17 00:58:04 2021
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.