Seamless Windows Virtualization

Virtualization of desktop operating systems is pretty commonplace for users of Linux and Mac OS. Initial implementations of desktop virtualization, such as VMWare 1.0, had the guest operating system running in complete isolation. Interaction was done through a custom application or network applications. There was no support for sharing files, sharing a clipboard, or merging the windowing environments.

Since then, virtualization has come a very long way. With VMWare and a supported guest operating system, the clipboards are the same, the mouse isn't locked to a window, and files are easily shared between operating system. Sadly, merging of windowing environments still isn't quite there. Your guest desktop still runs completely in a window on the host. VMWare has a new technique available in Fusion, their Mac product, called Unity that allows this. Parallels supports a similar feature called Cohesion, and I've been told that VirtualBox supports this feature too. This is a fine feature, if you have one of the newer products that supports this. If you're like me and still using VMWare Player, an older version of VMWare workstation, or connecting to remote windows systems with remote desktop, this isn't a native feature. Luckily, it's a pretty easy hack to get seamless windows.

Enter SeamlessRDP from Cendio. This little program extends the standard RDP system a little bit to provide for complete desktop integration when using rdesktop. It works in conjunction with rdesktop, so other tools such as tsclient won't work. Unfortunately, the directions for this aren't always the most clear, and they didn't work with my instance of VMWare, so here's how I managed to do it. These instructions are specific to Windows XP Pro.

  1. First, go and download seamlessrdp.zip and extract it to something like c:\windows. There should be three files in there, the one that we really care about is seamlessrdpshell.exe.
  2. Make sure that that you allow remote connections, go to control panel->system->remote and check "Allow users to remotely connect to this computer". At this point, you'll be able to test a remote desktop connection to your virtual machine through the command rdesktop REMOTESERVERIP. You'll notice that you're still running everything in still running a single window because we haven't invoked seamlessrdpshell yet.
    System properties to enable remote desktop
    Enable "Allow users to remotely connect to this computer"
  3. Enable welcome screen and fast user switching -- this is something that you normally don't see in enterprise deployments, but apparently it is necessary for this. I can't figure out how to make it work without this. Go to control panel->user accounts and check both of the options.
    Check both options on the user account settings screen
    Make sure both options are checked
  4. Tell Explorer to not draw the desktop -- the reason is pretty simple, if explorer drew the desktop the window would still be full screen. We can change this by creating a new registry in My Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer. Call it NoDesktop, and make it a DWORD with a value of 1. This will keep explorer from drawing the desktop.
    Registry settings
    Create a new DWORD registry entry called NoDesktop with a value of 1
  5. Here comes some of the stranger stuff, that you may not need to do, but I found necessary for my system and it wasn't properly documented anywhere. In most cases, you can specify an application to run with the -s option to rdesktop, unfortunately, this doesn't work on my system. Instead, we'll need to use a rarely used program that allows you to set system level policies. Go to start->run and enter gpedit.msc. Select User Configuration->Administrative Templates->Windows Components->Terminal Services.
    gpedit.msc program screen
    Run gpedit.msc and navigate down to User Configuration->Administrative Templates->Windows Components->Terminal Services.
    Now, the crutch that we'll use to select "Start a program on connection". Double click and check the Enabled box and enter in c:\windows\seamlessrdpshell.exe c:\windows\explorer.exe. Click apply and then exit.
    update the program to execute on connection
    Enter c:\windows\seamlessrdpshell.exe c:\windows\explorer.exe for the command to run on connection.
  6. At this point, if you log out, everything should work, but the graphics may be a bit funny. In my experience I've found that there are two more small changes necessary before everything works nicely. First, make sure you're using the Windows XP appearance and not the classic appearance. Second, uncheck the option to keep the task bar on top, as this will cause issues when maximizing windows applications. And finally, you can't have another panel on the bottom or the start bar will try to redraw itself poorly, over and over.
    uncheck always on top
    Uncheck the option to keep the taskbar on top
  7. Now, all you need to do is make sure you're logged out of the virtual machine, and execute the following command: rdesktop -r sound:local -A REMOTESERVERIP:3389 -u "WINDOWSUSER" -p "WINDOWSPASSWORD". If everything goes well you should get a nice little windows start menu at the bottom of the screen and your windows apps will run seamlessly. It's not 100% perfect, but any sort of virtualization, especially a hack like this, never is. In particular, sloppy focus causes windows programs to jump to the front. But other things work great, like a shared clipboard and sound. It makes working in both worlds lots easier.
  8. the final product
    The final product

Breaking Up With Liferea

Posted to linux on 2008-04-16 13:55:00
Liferea

Dear Liferea,

I wish I could break this to you easier. I wish I could say, "It's not you, it's me." I wish I could just do the college freshman breakup and say, "Hey, you're a great feed reader, you do a good job. You're probably the best on Linux, but I'm leaving Linux, so I can't take you with me." I wish I could make this easier, but I can't. So, I'll be blunt, you're just not up to snuff anymore. Ubuntu has made me want more out of my laptop. I can't settle for good enough, it needs to rock my world, and to be honest, Liferea, you've stopped doing that form.

At first I could handle your little strangesses. The fact that I seem to get an inordinate number of Yellow screens of death from even slightly misformatted feeds should have been a warning. It's the web, you're supposed to be open to different translations, people messing things up. You're supposed to be flexible, but you're not. You're stale. You remind me of 2001.

As time went on, you became more picky. Startups began to drag on. Waking you from your slumber would sometimes take a couple of minutes before your window would even appear and let me know that you're alive. Even after letting me know you're alive, you frequently went non-responsive and shunned me. Leaving me solid colored boxes on my desktop and a warning that even though you're ignoring me, if I try to make you go away, it could have dire consequences. Yes, it's turned into a bad relationship. I'm sorry, but I can't live with this cycle of dependency and rejection. You're getting the boot.

And, no, before you ask, I wasn't seeing other feed readers before coming to this decision. But I've taken some looks since then, and found that you still are probably the best around, but you're just not right for me. Thunderbird is a great standby and mail reader that has some support for feed reading, but it's a cruddy hack, forcing me to view the entire web page. It completely ignoring most of the stuff in the feed, such as embedded media and tags. It feels like I'm reading RSS feeds in some sort of bizaare love child between an email client, a web browser, and a feed reader that was genetically engineered by a committee. It's painful and slow. It reminds me of being back in the days when I needed to visit each web site by hand. Sure, it probably meets some enterprise specification, and would be a great friend if I were in a locked down corporation, but I'm more open minded and free willed than that. I can't handle how Thunderbird wants to confine me.

I also looked at some old friends from before I met you. Straw was my first and I considered hooking up again. Sadly, it lookes like very little has changed since I decided that that was a match that could never work. It still is kidna slow, chunky, and sometimes likes to ignore me just like you do. Straw feels familiar, it's in Python so I can hack it, but I shouldn't have to. It should just work. I'm not looking for high maintenance right now.

After I broke up with straw, I was with Blam!. It was sexy, it was fast, it was C#. Hey, I thought that experimenting with C# was a good idea at the time, turned out it was just bad advice from a friend. Blam! still refuses to play well with others, crashing completely on numerous feeds. Blam! also found a way to take up more of my time and resources that you ever did. Clearly Blam! would make a poor replacement for you, Liferea.

Some of my friends have been telling me to try out the new bicycle in town, Google Reader. Everyone is doing it, it's fast, it's slick, and it means that I don't need to worry about what's on my system or do any maintenance. Plus, it's available everywhere and I can take it with me on a plane. I've thought about, and may still visit it, but I'm worried information it keeps about me and what it will with that information. Will she go out and let the man know that I read Al Jazeera if they ask? She also has a nasty tendency to want complete control over all of my information. I'm not sure I'm willing to become that dependent.

You see, Liferea, it's not that I have something else right now. It's just that I can't be with you anymore. I hope you can understand. One day, we may look back on this day with fondness and conclude that it was a great relationship. That you let me experience feeds like never before. In the mean time, I'm just going to take my OPML file and go looking for someone else.

Sincerely,

Patrick


Serious Xgl Eyecandy

Posted to linux on 2006-02-24 08:49:00

Last year I wrote about some of the work that Seth Nickell was showing off regarding Luminocity, a GL acclerated fun fest of X. Well, times are moving along, and now it appears we've got a spat on our hands between Xgl from Novell, and AIGLX from Fedora/RedHat. The gist is that Fedora/RedHat thinks that Novell didn't do it in enough of a community fashion and has taken to bashing Xgl with claims like "it's too revolutionary" and the like. Someone should tell RedHat that it just makes them look like asses doing that sort of stuff. Seriously, Novell beat you out with XGL, they're functionally different anyway. XGL is an entirely GL based X-server, AIGLX renders stuff in GL off screen. From what I can tell, XGL is much closer to the future of the desktop.

With that in mind, David Reveman of Novell put out an mindboggling demo. It's 58 megs of xvid goodness, but shows some seriously cool stuff. There's more videos of the demo at the Xgl page at Novell. Likewise, there are also some nifty AIGLX videos. But I don't see a semi transparent Quake 3 running on the corner of a cube metaphor desktop in the latter.


Holy X Windows Eye Candy Batman!

Posted to linux on 2005-03-23 22:05:00

The Uber cool Seth Nickell, previously of storage fame has released some AMAZING videos of what's coming up in the desktop for Linux.

To sum it up in a nutshell, Owen Taylor, of GTK fame, has written a cracktastic GL compositing X server where everything is rendered as a GL texture, ala Mac OS X. This allows us to do all sorts of cool stuff with the desktop, just like Mac OS X does. Also, he shows off some of the really cool progress that is being made in integrating GTK with Cairo for great vector rendering on the Linux desktop. Go watch to videos. Grab the theora versions for extra goodness.