[news] [shells] [.apps] [tips] [graphics] [add-ons] [links] [contact]

IceSphere

History

The initial released version of IceSphere was  developed by: 

  • Gaurav Pophaly "Phobos"
  • Øyvind Selbek "Talon^lzr"
  • Glen Anderson "Katmai"
  • "BugKiller"
  • Chris Vickio "Limpid"
  • Luke Graybill "Killarny"
  • Andre Beckedorf "Jazz"
  • Magnus Jungsbluth "Platon"
  • "Crank
  • and Johan Redestig "Re5ource".  

Many of the names/handles above are very familiar to the win32 replacement shells community, as the developers of a variety of near-essential add-on modules and utilities for the Litestep shell. 

Write-up, "Sphere of influence", 11/24/99 by tin_omen

Well, I'm still excavating my butt out from under a pile of notable news. Today's project is to tackle the recent release of the IceSphere shell. This is the first extended look I've gotten at the shell, like many folks I snuck a peek at the publicly posted leaked beta from last spring/summer, and I have gotten the oppurtunity to play with several more recent betas as well, but never for an extended period of time, and there have been some substantial changes implemented since the last time I looked.<g>

To start with, IceSphere arrives as a 2.8mb .zip file containing a variety of raw files, some docs and no formal setup.exe (something I actually prefer as an old ls23 user; I prefer to do my own copying and know where everything is going and what changes are being made:P).

The root directory Readme.txt file in the archive instructs you to unpack it to c:\ice & run the ice.reg file to add the necessary registry entries. At this point you have a 3.18mb install in the c:\ice directory containing new 'docs', 'themes', 'users', 'bin' and 'ipc' subdirectories, along with the readme.txt, Ice.exe and ice.ini files and a pre-fab 'Install IceSphere' shortcut which is configured to execute the command 'C:\ice\Ice.exe -install', when run. Examining the ice.reg file shows that it simply adds new entries under HKEY_CLASSES_ROOT to support the IcePackage and IceHelp systems.

Running the c:\ice\bin\icehelp.exe as instructed threw an error from a missing ICEMOD.DLL, but confirming the dialog allowed the IceSphere Help System app to open (I searched the directory structure & the archive for the dll but didn't find it --update: the missing file is now available along with an update at the www.icesphere.net website). From there, the 'Open File' icon let me browse up the specified Quick Start help page. I've got to admit the included help browser, though not an essential component (less driven developers probably would have settled for winhelp<g>), is a nice touch that provides a more well-rounded appearance to the shell.

The Quickstart notes cover some basic use of the IceProp config editor and the IceUpdate .ice package installer (.ice files are pre-fab component & theme settings files), in the future the IceUpdate package will support autoupdating of core components, and download themes & plugins, options which are currently unavailable.

Attempting to load the specified Ice.ih help file threw a set of 'Access Violation' errors which continued to loop until I killed the IceSphere Help app and rebooted (must be related to the missing icemod.dll). After the reboot, I successfully reopened the indicated ice.ih file which covers configuration of the Ice.exe shellswapper in detail. At this point in the install the relevant info concerned configuring your username info & explorer path into the ice.ini file to enable katmai's new Ice.exe shell swapper (the direct descendant of my favorite general-purpose shellswapper 'Litespawn') to handle picking the appropriate shell for each user on the fly. The process was familiar territory for users of Litespawn (in fact I cribbed the relavant path settings from one to the other intact), as simple as opening the c:\ice\ice.ini file and editing the ExplorerPath setting in the [IceSphere] section of the file to point directly at my local copy of explorer.exe, and then editing in my alternate shells .exe locations into the [AlternateShells] section of the file. Finally I added a:

[tin]
shell = icesphere

entry in the User Preferences section to tell ice.exe to use icesphere when I logged in as the user 'tin'. In my case I also changed the default user setting to 'explorer'.

From there I ran the indicated 'c:\ice\Install IceSphere' shortcut, which pops a dialog prompting a reboot or logoff. Note: If you currently use Litespawn, you will need to remove it by running 'litespawn -uninstall' from your Litespawn directory before running the indicated shortcut, or you'll find like I did, that Litespawn removes Ice's modification and restablishes itself as the primary shell swapper. Gotta love that sibling rivalry:P

Although Ice has a variety of enhancements (many specific to IS, like the ability to copy-in locked components prior to shell-load), at this point it doesn't support Litespawn's option to prompt for picking a different shell on each load, instead shell selection is currently handled automaticly by user id. Otherwise I think I'd probably use it as my full time shell swapper for any shell.:)

Upon relogging in, Ice automatically loaded Icesphere up (I did get missing icemod.dll errors from icetask, icedesk & iceblock, but confirming the prompts allowed the shell to load properly). Icesphere's default theme presents itself as a black backround with a tool bar across the top of the screen (it does a nice job of picking up on the system color scheme, so that the bar & menus automatically match your existing explorer colors), with a 'Start' button on the right end (which pops a menu listing HDD & Docs options), three buttons (which tool tip as IceCommand, IceProp and IceScript Editor), a distinctive start-run entry box (which I used to launch the explorer filemanager), running tasks items for open applications, a system tray application and a digital clock on the far right. Right-clicking the desktop pops open the same menu displayed by the Start button.

The final items in the Readme file for the shell direct the user to read the documentation in c:\ice\docs, which was a good tip, because by monkeying around with the controls blindly, I quickly managed to open the iceconsole display but couldn't figure out how to close it (no borders or visible controls, typing 'exit' didn't work, and it's a stay-on-top app, which makes typing in this doc tricky<g>), nothing that a quick logout & login couldn't fix until I found the answer in the docs.:P

With the missing icemod.dll errors up to this point, I decided to make use of the IceUpdate system to install the Update1 .ice file I'd downloaded, to install the missing .dll file and see I if it's absense was affecting other parts of the shell. I found IceUpdate.exe in the c:\ice\bin directory and ran it, selected the 'Install a .ICE Package' option, and pressed Next, browsed up the .ice file, and confirmed the installation (note the Details button gives you a nice overview of exactly which files will be updated during the install). IceUpdate then notified me it needed to restart Icesphere to update a locked file, and then prompted for a reboot. After the boot, the missing icemod.dll errors went away (yea!).

So back to the docs... Icesphere is a big shell with a lot of seperate components, each documented in it's own .ih file, so it's worth the time to sit down and read through all the docs (if you don't want to end up playing tug of war for desktop space with IceConsole that is:P).

How about some interface material I observed: IceSphere uses a drag & drop config mechanism. To set the wallpaper, I dragged my standard .bmp from explorer to the desktop (the IceDesk component), and *poof* my wallpaper tiled into place. To install an IS plugin, IceVWM for example, I simply dragged the Icevwm.dll from c:\ice\bin\ to the desktop, where I positioned the displayed outline where I wanted the vwm to appear. The location is then automatically saved with the current theme settings. This drag-n-drop approach works for initial control placement, while relocating existing desktop controls is done via the IceProp application, where you can manually enter new coordinates.

I noticed while sufing the docs that IceDesk also supports usage of Litestep wharf-based .dll's, so I went over to my c:\litestep\mods directory and dragged out a copy of LSLM.dll, and it obligingly appeared right on the desktop. Sweet!

Heh, one item that eluded me until I got into the IceCore.ih file was exactly how you recycle the shell, logout, force a reboot etc. (so I'm dense:P). Well it turns out that all of these activities are handled via the IceCore icon which appears in the system tray. A rt-click of the icon gives you access to the Recycle Reboot Logout Shutdown options, and double clicking the icon pops open a full control panel which lists out the individual components running, including context-menu control of each (from here I was able to unload my recently added LSLM.dll instance, by rt-clicking it in the display and selecting 'Unload Plugin').

'So, enough monkeying around with the interface', your probably saying, 'What's it's resource usage?'. Well fresh from a reboot, NT's Taskmanager shows the following running related processes and associated memory utilization levels (you'll note IS is a multi-process shell, vs. a single-instance like Litestep or Darkstep):
IceBlock.exe 1332k
icecore.exe 1184k
IceDesk.exe 5828k
IceTask.exe 3416k

And 4% reported cpu utilization. No it's not exactly geoShell or Evwm-scale lightness, but that's not necessarily IceSphere's target audience, and it has a hell of a lot more going on than most shells (heh, most of which I haven't even looked at yet<g>).

Bugs? Yes there are some, but once I installed the missing icemod.dll, the majority of errors went away. I did see some 'Access Violations' from IceHelp or 'Memory could not be read' errors from IceBlock/IceTask, during reboots and recycles, and some occasional odd graphics artifacts on screen as well, but those could well be attributed to my use of NT. The fact is this is a very fancy new toy, with alot of balls in the air at once, and its in it's initial beta release, so you need to allow it some margin for error. I don't doubt that the next release will show substantial refinements.:)

So in summary, this is one sophisticated shell (it even includes Python as it's scripting language!), so I decided to put-off trying to implement my own custom desktop in it, as I don't have time within the constraints of this quick write-up to devote to the docs to sort out the detailed config options. But suffice it to say that there is a ton of power and flexibility here. It's funny, I'd forgotten how foreign a new shell can be if you don't already 'get' the core-metaphors out of the box.:P (you should have seen me trying common hotkey combos & right clicking everything in sight trying to find the controls, before hitting the docs:P) To be honest, prior experience with a variety of other shells didn't prepare me for IceSphere's completely different integrated approach.<g> I guess the last time I was presented with so much new material in one place was the first time I fired up and configured litestep23 coming from an explorer background, and actually had to relearn my whole approach to my desktop.

If you are looking for power and flexibilty and a wide range of integrated support components, IceSphere with it's existing help system, configuration editor and whole suite of integrated apps, could be just the ticket. There's no doubt that with all of it's ground-breaking new material it will have a big influence on all of the other other shells currently available. And you can bet that you'll find me spending some extended time burrowing through the docs in detail to discover the piles of other featues I'm sure are hidden just beneath it's very attractive surface.:)

 

An IceSphere desktop running the Saen  theme is visible here:

Distribution

The current 'released' version of IceSphere  is version Pre-Beta 1 (as of 12/7/99). Full installation details are outlined at www.icesphere.net.

No fancy layout or scripting. Just info & graphics.
(optimized for at least 800x600 resolution at highcolor depth)

All original material on this site is ©1998-2000 Todd Kadrie/ tin_omen.  These materials are intended for personal non-commercial use only.  No material from this site is to be mirrored, redistributed, archived or transmitted without the author's or copyright holder's express written consent.