Both my laptop and desktop are wireless, so there are 2 wireless "hops" between my machines and when logged into my desktop from my laptop each command (i.e. a click or keystroke) has 4 wireless hops to go through before my screen displays the result. So speed is key.
Remote access servers that didn't work out
I tried pretty much every remote access server I could find. I was already familiar with VNC, and that was a perfectly viable option but my desktop has dual monitors, so there was a pretty big difference in screen resolutions and one of VNC's real weaknesses IMHO is that the client is forced to use the screen resolution of the server. I didn't want to be scrolling around a lot so I axed that idea.
Next I tried SSH with X forwarding enabled (using the -Y option). That was nice and simple since all of the software and keys were already in place, but it was too slow, even with the -C option (which enables compression, effectively speeding up the rate of transfer). FreeNX is a similar solution, and although it was somewhat faster some of the time, it didn't provide a consistently high level of performance so I had to reject both solutions.
Gnome also offers the option of logging into another machine via XDMCP. When booting my laptop, I would stop at the login screen, hit Options, then "Remote Login via XDMCP". In addition to stopping me from running any applications or doing anything else on my laptop while logged into my desktop remotely, this proved to be too slow also, so I canned the idea.
I was about to give up when I discovered xrdp.
XRDP is a service that I installed on my desktop to enable it to accept RDP connections from my laptop. Ubuntu already comes with an RDP client, tsclient, installed by default, and I've used Windows XP's Remote Desktop a lot at work so I know how well it works. XRDP is in the Ubuntu repositories so I installed it on my desktop and now I can log into it from my laptop using the same program I use to log into my computer at work, and the speed more than adequate. It is really great to be able to program, run virtual machines, and do many other resource-intensive operations from my laptop.
XRDP has a few quirks that I decided I could live with, but it is worth mentioning them here:
- It depends upon the package "tightvncserver" being installed on the server (the machine you are logging into), although it isn't configured as a dependency in the package (this was the case as of the last time I set up XRDP, which was a while ago so hopefully they have fixed this). Install tightvncserver before you attempt to install XRDP.
- You may install the XRDP package and have it work just fine until you reboot the server. This is because XRDP sometimes has difficulty figuring out whether it is running or not, so when the server is rebooting and it tries to start XRDP, XRDP thinks it is already running even though it isn't and refuses to start. You can fix that by running this:
sudo sesman --kill
sudo xrdp --kill
sudo rm /var/run/xrdp/xrdp.pid
- There is no way to log into the console session. So if I was working at my desktop and had to get up for something, I can't resume what I was doing on my laptop. Windows XP provides the "/console" command-line switch which allows you to take over the session that is currently displayed on the machine's screen, but there is no way to do that with XRDP. There might be a way to do it within Gnome; I'm not sure at the moment.
- If you do anything in the remote session that makes a sound, the sound will be played on the server's speakers, not your client's speakers. So the first thing I hear when logging into my desktop is the sound of the Ubuntu login music being played on my desktop speakers, down the stairs and two rooms away. This is a very minor annoyance to me but it is worth mentioning.