eggShell is a User Interface for all versions of Windows from Windows 2000 onwards. It’s designed to be flexible, intuitive, and simple to use and is based on a bar/plugin concept which originated in our Cloud:9ine Shell Replacement project dating back to 1999.
All functionality is provided by plugins – small scripted code modules – which typically provide a single specific feature (a button which launches an application, a label which displays some information, and so on). Instances of plugins are then hosted in individual bars to create an environment tailored to the user’s own taste.
Each bar consists of a gripper, some plugins and, optionally, a shelf. Bars are moved around the screen by dragging on the gripper, they can be expanded and shrunk by double-clicking it, and right-clicking the gripper opens a context menu which provides access to further features, and also allows for adding and removing plugins. The number of plugins a bar contains is only limited by the size of the display.
Any number of bars can be created and each can be configured individually. Dragging a bar to a screen edge will cause it to “dock” against the edge. Bars can be full-width, inverted, have different background colours and automatically shrink and turn translucent when the focus shifts to another window.
Each bar supports a shelf which can contain plugins in exactly the same way as the bar itself can. The shelf is drawn with an inset effect and is always aligned to the far end of the bar, and the plugins are slightly smaller of course.
Widgets are transparent windows which display a single plugin within them. Currently the plugins displayed by widgets differ from those that can be loaded into a bar, however future releases will support a unified plugin architecture which allows the same plugin code to be loaded into either a bar or widget. Double-clicking a widget places it into configure mode – in this mode, a background is drawn behind the widget and access to the widget’s control menu is available. The widget can also be positioned by clicking on it and dragging it around the screen. Double-clicking again places the widget back into user mode.
The eggShell desktop can be displayed or hidden. When displayed it obscures the existing Windows desktop provided by Explorer and thus hides any icons which may have been added to it. A different wallpaper may also be displayed if so desired.
Concept 75 (2012)
The beginnings of concept 75, based on my experiences with Snarl scripted styles and extensions. Plugins are scripts but can now base themselves on pre-defined control. Controls are Active X objects which are built into eggShell (the ability to have third-party controls will be added) and these do all the heavy lifting. These four screenshots show a single bar with different plugins loaded, each built on a different control.
Having pre-defined controls makes plugin development infinitely easier, as a lot of the hard work is already done for the developer. Want a toolbar plugin? Just set the control entry to toolbar during the plugin’s initialisation phase. The toolbar is then made available to the plugin as an object called control. The plugin can then add the buttons it wants and respond to them accordingly when they’re clicked by the user.
The ColdFusion concept was starting in 2005 and was spun off from my Konfabulator clone, dotWidget. The idea was to promote the use of script-based plugins in order to widen the scope of people who could develop plugins.
Three publicity shots – all from May 2005 – which provide more information about the bars themselves and also demonstrate the functionality available. The concept is beginning to take shape now and this is the first time that plugins created by scripts (as opposed to COM DLL-based objects) had been considered. I still consider ColdFusion to be a turning point in the evolution of what is now eggShell.
A later screenshot showing how things looked before the project was finally abandoned. Snarl development began in earnest during 2005 and very quickly took priority over all other conceptual projects – and this included ColdFusion. The screenshot shows a number of bars of varying sizes on a full desktop. The number of different plugins is still limited at this time, but even this limited number shows the flexibility available to the end user.
Stardust (c. 2002/2003)
Stardust was the codename for the successor to Cloud:9ine. It’s likely the finished product would have retained the Cloud:9ine name, possibly including the Stardust moniker. Sadly, a dwindling support base coupled with a general shift away from shells by end users, meant that only preview versions of Stardust were ever released.
Concept shots of potential new features to be added
Cloud:9ine (c. 1999-2002)
The origin of where we’re at now! Cloud:9ine debuted in 1999 and was under constant development and improvement until well into 2002, during which time many new features were added, and plenty more were in progress.