Back in the heady days of Macintosh System 7.5, Greg Landweber released Aaron, which changed the system’s windows and buttons to match the “Platinum” appearance of the upcoming MacOS 8 (codenamed “Copland” after the composer Aaron Copland). Hacked versions of Aaron quickly appeared with the MacOS 8 images replaced by images of the hacker’s creation. Landweber realized he had a cash cow and released Kaleidoscope, which could switch “schemes” on the fly.
This may have been the birth of the idea of the “skinnable” user interface, and Kaleidoscope was an early popularizer of the idea. Skins/themes/schemes were implemented by Niji (MacOS), WinAmp and XMMS, WindowBlinds and tgtSoft’s StyleXP (win32), Enlightenment and Sawfish (X11), and scores of other programs for many different OSes. There now exists a huge theming community, with sites like
devoted to a rather broadly-defined “Theming Community”.
Kaleidoscope and Apple were at odds from the beginning, with Apple suing to have (former Apple employee and Kaleidoscope partner) Arlo Rose’s Mekong scheme removed from Kaleidoscope 2.0, then demanding that the third-party imitations of Gizmo and Hi-Tech never be allowed in the Kaleidoscope-maintained Scheme Archive.
Each release of MacOS after 7.5 had Kaleidoscope devotees breathlessly awaiting news of whether Kaleidoscope would run on the new OS, and each point release of Kaleidoscope would introduce support for some new feature of the latest MacOS. Apple’s own Appearance Manager, released with 8.5, provided essentially the same theming functionality, although the much awaited Gizmo and Hi-Tech were axed by Apple at the last minute.
Unsurprisingly, Kaleidoscope doesn’t work on the completely-redesigned OS X (Mac’s Not Unix!) window manager and widget set. But that’s not quite the end of the story. An Apple employee wrote a tool to convert Kaleidoscope Schemes to OS X Themes, and in retaliation, Kaleidoscope threatened to close its Scheme Archive. If they weren’t going to be getting any more shareware registration fees for their now-defunct product, why should they provide what could become a resource for the OS that broke it?
Apple has been searching for and requesting the removal of Aqua themes and schemes wherever it can find them, although the determined googler can still find a number of quite good Kaleidoscope, WinXP, and Sawfish Aqua-lookalikes (as well as the old contraband faithfuls, Mekong, HiTech, and Gizmo).
A number of theming tools have appeared for OS X. Conundrum Software has released Duality. Cliché Software has released as Open Source (and ceased development of) their ThemeChanger. Themer 3G is in public beta. None of these appear to provide the full flexibility and window decoration capabilities (non-square windows and fully-custom buttons and button placement) present in Kaleidoscope, Enlightenment, or Sawfish, but it’s likely that something will step up to fill Kaleidoscope’s void.
The sad results of this story are the death of Kaleidoscope, the vast number of now-useless schemes, the community that will fade into obscurity, and the huge amount of work that will ultimately be wasted. It is all too easy to chalk this up to the inexorable progress of software, but it is useful to stop and consider why this community is dying and whether it could have been avoided.
To be as generous as possible to Apple, it is much easier to design a user interface that is consistent and easy to learn if you do not allow the user to customize it. But from the point-of-view of the “power users”, that lack of customizability is probably the biggest user interface failing in the Classic (pre-OS X) MacOSes. This is a reason for Apple to wish that Kaleidoscope fade away; it threatens the consistency of their interface.
Even if you don’t buy the “consistent user interface” argument, it’s hard to fault Apple too much for perpetually breaking shareware and preventing new features from back-propagating into their old OSes. They are a company, with a brand to protect. I had Platinum on my MacOS 7.5 box. I can now have the Aqua look under Linux, my MacOS 8.1 install running in the Basilisk 68040 emulator, and win32. That’s one less reason for me to put up the dollars for a new Mac.
The real fault for this wasted work lies mostly with Kaleidoscope. The Kaleidoscope developers relied on undocumented, unsupported internals of MacOS to make it work. The continued success of Kaleidoscope relied not only on the continued existence of MacOS, but on Apple’s goodwill as a corporation towards Kaleidoscope and on their level of interest in providing the same features. This story has been repeated a hundred times with less-known Mac shareware, which suddenly finds itself obsolete or broken in the new OS.
Free Software dies too, but the good ideas and the projects that people care about can continue because the old code and the new code are there for borrowing, imitating, and porting. Developing software, even Open Source software, under a proprietary system will always run the risk that the proprietary system shuts it down. In other words, even if the Kaleidoscope source had been made available, it would still have relied on undocumented internals of proprietary code, and it would still be dead today. Hordes of Free Software and Unix geeks are switching to OS X and loving it. It’s unlikely that any of the Unix projects being ported to OS X will suffer Kaleidoscope’s ultimate fate, simply because their code is open and already runs on other operating systems. But some projects might be in for nasty surprises when new versions of OS X come out that break existing ports in deep and fundamental ways.
I’m sure people will take this in stride; it is part of the very definition of a hacker. Hacking OS X is another very respectable step in a long line of operating systems and architectures that people have been reverse-engineering, just for the hell of it, for decades. But as long as people rely on proprietary software every day, reverse-engineering it will continue to inconvenience them. When people get tired of this cycle, there are a quite a number of old faithful operating systems waiting to welcome them back.