Back in my startup days my office mates and I had a tradition we called 'something cool'. When someone would come into our office that we hadn't seen for a while we would usually end our conversation by saying "hey, want to see something cool?" We would then proceed to show them something we hoped they didn't already know. These would usually be something like a new Windows or Linux trick, a new cool utility or macro or even a new web site we discovered. It was our way of 'sharing the wealth'
In the spirit of 'something cool'...
Meet MetaVnc.
MetaVnc is a project developed at Stanford that is based off of TightVnc. They have server versions that run on Windows or Linux, and clients for Windows, Linux and Java. So what makes this fork of VNC so special you might ask? Well it is 'window aware'. In their own words it is "a remote desktop environment that users can control applications on different hosts seamlessly." It allows you to connect to a remote operating system via VNC and present the remote apps on your local desktop as if they were running local. Parallels has something similar now they call 'coherency mode.' The basic trick is that the backgroud of the VNC client is transparent and you can click through it - giving the illusion of executing the app locally. Right now I am writing this entry in a Linux version of Firefox running along side Microsoft Word and other apps on my Laptop's Windows XP desktop. Of course that remote app could be located anywhere and running on Linux or Windows. It just happens that it is also runing locally on my same laptop. (Warning, you may want to skip the next sentence, it is a bit geeky.) Technically I'm writing this in Firefox on Fedora 5 Linux executing in a Vmware Player virtual machine, hosted on Windows XP, running on my dual core laptop, served up by MetaVnc server (Linux) via localhost to MetaVnc Client (Windows) displaying seemlessly on my Windows desktop. Now if that ain't nerd cool, I don't know what is.
But wait there's more!
As if that isn't enough, they have added something they call a meta window manager. What this does, (under the right conditions), is merge your start menu or app menu with the one on the remote OS. This lets you launch remote or local apps from the same menu! You can choose how you want the apps merged - they can be mixed in with local menu, or they can be rooted one level down under an entry called 'remote' (my personal choice). Had enough? I'm not done yet, they've also thrown in the ability to mix the taskbars of both the remote and local machines. Remote apps on the task bar look the same with the only difference that they have added '@ remotehost' to the end of the titles. The local and remote apps are even mixed together when you task switch with alt-tab! Like all open source projects, however, this is a work in progress. The meta window manager is further along in the Windows version than the Linux version. To get the full effect of the coolness I just described I had to run Windows connecting to Windows. The Linux version is coming along however, but they don't have support for freedesktop.org menus yet. Also currently you cannot mix the Z order of the windows between local and remote apps. What this means is that when you click a remote app, all the remote apps are pulled forward. But they promise to fix this in the future. The latest release is less than 1 week old - go check it out.
Oh, And one more thing...
(How Jobs of me)
As you know I'm not a big fan of using VNC to connect to Windows boxes. The performance is, quite frankly, horrible compared to RDP. Also the Windows versions have been plagued by refresh / redraw issues. Things are looking up however. Rather than sit around like the original VNC authors and complain about how they can't make it any faster because they don't have the Windows source code... waaaaaaa.... Some people have actually tried to address the issue. And what they have come up with is something called a 'mirror driver'. This is a video hook / virtual display driver that is installed on the server machine and setup to 'mirror' the main display. This allows them to capture all the GDI calls and send them over, rather than poll the screen for changes. Both UltraVnc and TightVnc are working on this approach. I can't speak for the performance of the current UltraVnc, (I have not been impressed with their older versions), but the mirror driver used with TightVnc is automatically detected by MetaVnc and is very fast and free of refresh issues. On a local lan connection it is almost as fast as RDP - almost. VNC still consumes more CPU than RDP however.
Too funny. I need to check this app out though. Thanks for the info.