Executive Summary
DesktopX is a program that allows users
to create their own customized desktop. It does this
by extending the existing Windows shell to provide a whole
range of new features. These features primarily come in
the form of objects that provide nearly unlimited ways of
customizing the shell.
DesktopX can replace the Start bar, system
tray, and task bar should the user wish to as well as
everything on the desktop. DesktopX objects can be used in
place of Windows icons or used side by side with them.
Unlike Windows icons, each DesktopX object can be any size
and any shape and more importantly react to messages from
the system (such as mouse over, program launching, and
custom user events).
Because DesktopX objects are true objects,
unlike Windows icons, they can be easily animated to react
to different messages as well as display visual
information on what they are meant to represent without
the need to have what it represents opened. A typical
example would be a DesktopX object representing ones email
program that could change its appearance or make a sound
if there is email waiting to be downloaded without having
the email program loaded. The object simply responds to an
OS message that there is email waiting and changes itself
accordingly.
DesktopX requires no
programming to build a completely new desktop. However, if
you do know how to program, you can extend DesktopX's
functionality via Microsoft's COM technology as well as
through plugins and scripting (using VBScript).
A tale of two
backgrounds Part 1: The Shell
Themers
Over the past few years, an increasing
number of users have wanted to have more control over the
way their PC worked. A number of developers got together
and created an alternative, open source shell called
Litestep.
Litestep replaces the Windows shell known as
Explorer. Developed by hobbyists,
Litestep has attracted thousands of users who use
that shell and its ability to load up a particular
customizable shell interface known as a “theme”.
Litestep can be found at
http://www.litestep.net.
The problem is,
anything that requires replacing the Windows shell is
going to limit the number of people willing to use it.
Jettisoning Explorer is a pretty major operation for an
end user to make. Moreover, a
Litestep theme is monolithic. Users can’t easily
change a theme or add new items to it and is thus a “take
it or leave it” setup. Additionally, items on the desktop
tend to be hard coded to specific paths (example: a
graphic representing MS word might be hard coded to e:\my
programs\microsoftword)
requiring users to spend a lot of time tweaking those
links or spending time modifying the theme to eliminate
graphics that point to programs they don’t have.
DesktopX addresses these issues by working
with the existing shell. It also introduces the concept of
desktop parts (DesktopX objects) that users can mix and
match parts of desktops by trading objects. DesktopX
themes can be resolution independent so the user does not
have to change their screen resolution to match the theme
creator’s resolution. And DesktopX has “SmartFind”
built in so that a MS Word object will find MS Word no
matter where it is located on a user’s machine.
A tale
of two backgrounds Part 2: Taligent/OpenDoc/Cairo
Back in the early 90s, Apple, IBM, and
Microsoft all wanted to take the desktop to “the next
generation”. After all, the static picture (icon)
representing a program metaphor was from 1984. Each
company spoke at length of their own vision for the next
step in the GUI evolution. IBM and Apple teamed up to take
forward a vision called “Pink” that was to produce a new
OS called Taligent along with
a new object architecture called OpenDoc. Microsoft
countered with its own vision called “Cairo”.

In both visions, the idea was to break the
desktop into “parts”. Icons would be replaced with objects
that could interact with the system and other objects.
Users could easily build their own customized applications
by mixing and matching parts (objects) and send them back
and forth. A common IBM example was of a user sending
another user a spreadsheet that contained a
mini-spreadsheet part in email. The user on the other end
wouldn’t need to have an entire Spreadsheet program
installed, the spreadsheet
“part” included would allow the receiving user to use the
attached spreadsheet.
Another IBM example was of the desktop
objects themselves being “live objects” such as the
printer object. The printer object would actually be able
to display its paper and toner status as part of the
visual appearance of the object. If the printer ran out of
toner, the printer could send an email message to the IT
manager and visually display that it was out of paper. If
the user moved their mouse over the printer, it might
display the other jobs in the printer.
All without having to load a separate print-monitoring
program. (Windows 98/ME/2000 and OS/2 all have
implemented a fairly hacked implementation of this
vision).
Other promises for such desktop objects
included having these living objects
be able to tell the user how much RAM or CPU that
the associated programs were using. Load up Word Pro and
the Word Pro object would change to display that it is
opened and how much RAM it was using up.
The idea behind these technologies was to
break software into components. Rather than having all of
Outlook loaded, for instance, you could just have the
parts of it you needed loaded. And these parts could be
distributed amongst users so that data and executable were
merged into an “object”. These objects were called “Parts”
or OpenDoc parts in IBM/Apple’s vision.
Microsoft’s vision with Cairo is harder to
track. No one is quite sure what Cairo was except that it
was going to compete with whatever Apple/IBM came up
with. At one point Microsoft conceded that Cairo was a
set of technologies that would be integrated into Windows
over time. What those technologies are or were no one
really knows but the general overview of it was to provide
users with an object oriented way of handling their
programs and data. But it could be argued that ActiveX,
COM, and Active Desktop are technologies that grew out of
that movement.
History has shown that Windows won the OS
Wars and all this talk about letting people trade
parts/objects back and forth and allowing end users to
easily transform their computing environment disappeared
with the end of the OS Wars. And so we're back to where we
started - lots of coding needed to do small things with
most people interacting with their desktops in the
identical way – either wading through a “Start” menu or
clicking on static 32x32 pixel pictures (icons) thrown all
over an arbitrary directory called “a desktop”.
But Stardock hadn’t disappeared. It was
heavily involved in the betas for OpenDoc and
Taligent. And it kept up with
what Microsoft was doing as well. To bring the Cairo/Taligent/OpenDoc
concept to the general user is where DesktopX comes in.
DesktopX seeks to combine the strengths of what
OpenDoc/Cairo/Taligent offered
to end users and developers combined with meeting the
needs of the existing core base of “themers”
so that it can grow into a mainstream movement.
Stardock has limited the scope of DesktopX
to concentrate all its resources on what it does best –
allow users to control how the shell of Windows operates
(OpenDoc was system wide, applications could use it). This
also means it’s not cross platform (OpenDoc was available
on Windows NT, OS/2, MacOS,
and AIX). And it doesn’t provide a “new” object standard
but instead relies on what is already available (Standard
Windows messaging, C++ DLLs, COM, Windows Scripting Host,
XML, ActiveX, etc.) to do its thing. Why did Stardock do
this? The first reason is pretty obvious, if IBM, Apple,
and Microsoft had difficulty finishing such ambitious
projects, a smaller company is
not likely to have those kinds of resources either.
Moreover, it is a matter of diminishing returns. The real
use of the Apple/IBM/Microsoft vision was in how people
would be able to interact with their desktops.
But these trade
offs result in an unprecedented control over the way the
Windows desktop works. They can still create “themes” ala
Litestep but now these themes
are resolution independent, they are made up of objects
that can be imported from other users and from various
download sites. Any end user can easily manipulate any
object. There is no programming required to make a typical
DesktopX object.
In short, it finally makes it possible for
Windows to be like other mature products on the market –
easily customizable to suit the needs of its customers.
Users can make Windows work the way they want it to.
DesktopX: Today
Today, DesktopX can
allow users, IT managers, and consultants to create
personalized or proprietary desktop environments for both
home and corporate user. It has been used to create custom
desktops for use in everything from kiosks, corporate
desktops and even in movies to create a “futuristic
looking desktop”.
This portion of the
document will try to explain what DesktopX is and why it’s
important and how personalized desktops can be very
useful.




The typical desktop:
Nearly every
person’s desktop looks something like above. You have the
start bar on the bottom, some (usually a tons) of icons on
the left side. Regardless of how that machine is being
used, this is how it will look and act. What’s worse, this
is probably an idealized case,
most desktops have dozens of icons spread all over the
desktop making it a confusing mess.
This is a one sized
fits all solution. It works generally well for most
people. The problem is that PC’s today are used for a
whole host of different ways. The further away from a
general desktop system the PC gets, the more time/training
costs go up.
This is where
DesktopX can come into play. It allows individuals and
corporations to completely change the desktop to suit
their needs.
DesktopX 1.1
introduced DXScript, a
scripting layer that allows DesktopX to treat COM objects
as DesktopX objects and interact with them. Hence, if a
user wants to have a desktop that is essentially a
pre-arranged spreadsheet, a browser page, and instant
messaging, DesktopX can do this and hide the rest of
Windows away.
DesktopX: The future
The next version of
DesktopX is code-named DesktopX NG (Next Generation). It
expands on DXScript to provide
a new type of component known as a “wrapper”. The problem
with COM objects is that they are complicated for end
users to interact with. A typical system has hundreds of
COM objects installed and defining what they can and can’t
do requires a developer.

Even
today, DesktopX can perform virtually all the functions of
specialty software like Factory Link (which costs
thousands of dollars). Rather than having to learn
proprietary scripting languages, DesktopX uses Windows
Scripting Host so that developers can interact with
devices and the OS in any scripting language they choose
(VBScript, Javascript, Perl, etc.).
Contacting Stardock
DesktopX is part of Object
Desktop, which is delivered by the .NET Application
Service Provider Stardock.net (www.stardock.net
and
www.objectdesktop.net).
It can
be reached at:
Phone:
734-762-0687
Fax:
734-762-0690
Email:
sales@stardock.com
Product
Manager:
Brad
Wardell –
bwardell@stardock.com
Object Desktop costs $49.95, includes a 1 year
subscription to ObjectDesktop.net.
Resources on the Net
OpenDoc
For IBM’s
view on OpenDoc visit:
http://www-4.ibm.com/software/ad/opendoc/position.html
For IBM’s
view on how the PC desktop was supposed to work download:
http://www.stardock.com/files/cuademo.zip
Taligent
http://www.d.kth.se/~d95-aeh/taligenb.html
ZDNet on DesktopX and
Cairo
http://www.zdnet.co.uk/itweek/columns/2000/26/orlowski.html