Bill Lovett

Remote Desktops with XDMCP

Over the weekend I figured out how to connect to my Linux desktop while sitting in front of my Windows desktop using XDMCP and Cygwin. I'm amazed at how well it works, and how much it challenges the way people ordinarily interact with their computer.

XDMCP is similar to VNC, Windows Terminal Services, and Apple Remote Desktop. All those products fall under the category of Desktop Sharing, which involves funneling the signals that a computer ordinarily sends to its monitor, mouse, and keyboard into its Ethernet connection. Somewhere else, whether across the room or across the country, another computer can pick up those signals and send them to its own monitor, keyboard, and mouse. It kind of like treating your computer the way you treat a web site: you can reach it and use it regardless of your physical (albeit Internet-accessible) location.

I like XDMCP over VNC because there's no visible graphic distortion-- the desktop looks as good as it would if you were connected to it normally. If it looks like the real thing and smells like the real thing, it might as well be. This is a client/server sort of relationship. I can quit the program running the remote desktop just like any other and find myself back on native turf.

Suddenly you only need one "good" computer to play the role of the server. You spend your time tending to the server and getting it to act the way you want. The clients, meanwhile, can be underpowered pansies by comparison. All they need is the ability to connect to the server. Slumpy processor? No biggie. Skimpy RAM? Whatever. Best of all, more than one person can connect to the server at once.

That kind of experience almost never happens in most people's daily computing. If you trick out your home computer and turn it into a paragon of productivity, you're on your own when you sit down in front of a friend's computer, or the one you use at work. Configuration settings and preferences and overall environment setup aren't portable. Email can be if you try hard, you're careful, and you know what you're doing, but that's about it. Since it's out of reach, people get by without true portability and resign themselves to maintaining as many computers as they have computing environments. Or they buy a laptop and bring it with them everywhere. I personally have 4 environments: home Linux machine, home Windows machine, work Windows machine, work Mac. I'm more concerned about the first two rather than the last two (work computer broken? Darn, guess I'll have to call it a day). But I'm still duplicating effort when I set up something on a work machine based on earlier success at home. It's all a great big time waster.

I'd rather have One Desktop to Rule Them All, or at least a homebase desktop that I spent most of my time in front of. One person, one desktop environment. If you've got special needs or you rely on certain applications that are Windows-only, sure, this won't cut it. But for many people it will, and things like XDMCP can make it happen.

As with anything that relies on network connectivity, latency could become a problem if your connection wasn't fast enough. I'm intentionally ignoring that for the moment to focus on this scenario: You wake up some morning and turn on your computer. It goes through the usual starting-up bullshit that it always does until it finally displays a login screen. You type in your information and wait for your desktop to load. Behind the scenes, your computer is connecting to the personal server in the basement of your home which you leave running all day. You check your email, then go to the kitchen and turn on the smaller Internet appliance there, which will also eventually log in to your personal server. And when it does, you finish reading an email that you started reading at the other machine.

Then you go to work. Your company has its own network environment but you still connect back to your personal server because that's where you work the fastest. If you need something in the company network you can either log in from your personal server or log in from the workstation on your desk.

Only when you go out to lunch with your Internet-aware cell phone or PDA do you leave behind your full blown desktop environment, since it doesn't make sense on those devices. But your personal server is still in the picture, since it provides proxy services to block out ads and unscrupulous content. And later when you get back to your desk you'll have the option to sync your mobile device with your desktop, which will in turn carry the data back to your personal server.

Almost all of that is completely possible right now.