Working outside the box with Unity

A Brief History of Boxes

In the days of old, working on your computer meant working inside a limited contained box. You could run programs but only one at a time, because running two at the same time would require two computers. This was the status quo for years. It’s just how computers worked.

Then a new technology changed everything. Multitasking. Now you could buy one computer and your operating system would allow you to run multiple programs at once. No longer were you tied to one box at a time. You could have one for your word processor, one for your spreadsheet, and one for solitaire. It was a spectacular invention, one that we quickly took for granted. Relatively few computer users today even know what it’s like to use a computer without this ability.

As time went on, new operating systems began to develop substantial user bases. The competition between them grew, and most applications were tied to a particular operating system. You were limited to one operating system at a time, and if you wanted to run two at once you would need two computers.

Then came modern virtualization, which shattered this barrier. Now you could have one or more giant boxes on your computer containing a full operating system, each with different applications running. These boxes could sit side by side. Some people are already taking it for granted. Soon grade school children will be using virtualization without even knowing that there was a world before it.

But up until now, working in a virtualized environment meant working in a big box on your screen. Sure you could have several going at once, but you realistically could only interact with one at a time. These boxes represented screens, and you can only fit so many screens on a single screen at once before you start feeling really cramped.

Shattering the box

Earlier this year, we released VMware Fusion 1.0 for the Macintosh. This was our first virtualization product for the Mac and it has been met with high praise. And jealousy. VMware Fusion managed to change how users thought about virtualization. Thanks to Unity, you were no longer forced into having a big box on your screen. With the click of a button, the applications inside your virtual machine would appear outside of the box, sitting alongside your other applications. The Mac users loved this and Windows and Linux users were left feeling like they missed out.

I can’t recall how many times I’ve been asked if Workstation is going to include Unity in Workstation.

Unity
The answer is yes. Well, eventually.

I’m working on adding Unity support to the Linux codebase, which may in time be part of Workstation or Player. This will allow your Windows and Linux programs to intermingle with the click of a button. As of right now, here are the current state of things:

Unity Today

Unity today works in Linux on my system. It’s known to work in Metacity but hasn’t been thoroughly tested in other window managers yet. The basic things you’d expect all work for the most part. The rest will come later.

What I have working today

So far, the very basic window management works today, for the most part. It’s usable just enough to go “Oh neat” and to play a game of solitaire.

Many things do not work today, though.

  • Virtual desktops do not work. If you move windows to other desktops, you’ll have problems.
  • Multiple monitors might work but probably won’t.
  • Alt-dragging or otherwise moving a window in a way other than by using the titlebar will cause us to get out of sync.
  • If you attempt to drag a window off-screen, the window manager may block it, but the events will still be sent to the guest. This could cause the window to get “stuck.”
  • Minimizing a window using the taskbar may cause visual oddities.
  • Partially obscured windows may look wrong when in Compiz’s Expose mode or similar modes where all windows are displayed at once.
  • There’s no proper start menu integration. Exit Unity mode to launch new applications or press the Windows key or Control-escape while in a guest application to bring up the guest start menu.

These issues are being addressed. In many cases where windows become “stuck,” simply leaving Unity and then going back into it should fix the problem.

Going forward…

There’s a lot we have in the works for Unity, and while I cannot yet talk about it all, the end result should be just awesome. I’m hoping to have a video demoing it at some point.

P.S. For those who notice the borders and VMware logo badges on the Windows windows in the screenshot and find them annoying, you will be able to disable them. The idea is to allow you to easily determine the guest windows from the host windows when the OS and theme are the same.