There’s something about the macOS operating system that kind of drives people wild. (Heck, even the original Mac OS has its strong partisans.) In the 17 years since Apple first launched the first iteration of the operating system based on its Darwin Unix variant, something fairly curious started to happen: People without Macs suddenly wanted the operating system, if not the hardware it ran on. This phenomenon is somewhat common today – I personally just set up a Hackintosh of my own recently – but I’d like to highlight a different kind of “Hackintosh”, the kind that played dress-up with Windows. Today’s Tedium talks about the phenomenon of Mac skinning, specifically on Windows. Hide your computer’s true colors under the hood.
I used to do this back in the early 2000s (goodness, I’ve been here way too long!). It was a fun thing to do, since you could never make it quite good enough – there was always something to improve. Good times.
It was generally what a lot of n00bs did back in the day to look cool. This extended to people using whatever what favourite linux distro at the time and running a Mac skin on stop of Gnome.
It always amused me when people tried to reskin gnome into being mac when the best path would have been to hack on GNUStep and just reimplement the Apple desktop.
Also, they could’ve used Darwin as the base/kernel… IIRC, there was one “distro” based on it (but not on GNUStep) at some point, but it kinda died.
Though I remember using different skinning programs on Windows 3.11, back in the early 90’s. If I had a Mac-OS skin running or not, I really do not remember. Even back in 94, we used to transform/modefy windows.
I never really reskinned my desktop to look like MacOS, but I did replace Explorer with LiteStep as my Windows XP desktop shell for a few years before I switched to Mandrakelinux 10.0 entirely.
http://litestep.net/
In the Windows 3.1 era, I mainly used a shareware version of a piece of software alternatively referred to as Plug-in or “Plugins for Program Manager” (which I got off the companion CD to CD-MOM: The Mother of All Windows Books) for its ability to allow the Program Manager group icons to be customized.
(The Usenet archive Google Groups bought off DejaNews suggests that Plannet Crafters made it freeware during the early years of the Win9x era, but, sadly, that download was never archived on the Wayback Machine.)
Edited 2018-05-23 22:23 UTC
Speaking of which, if anyone could point me at a good reference for the kinds of monkey-patching and “colouring outside the lines” that Win16 utilities loved to do, I’d appreciate it.
I’ve got a pile of books, but they all seem either focused on using Win16 APIs in line with whatever passed for a HIG back then or too low-level to mention how customizing Program Manager with custom icons/dialogs/etc. was accomplished.
(Given that I didn’t graduate beyond Visual Basic and portability abstractions like wxPython until after I’d switched to X11, and still focus primarily on future-proof designs, it took me far too long just to consider that a function like SetWindowsHook might exist.)
The Waite Group’s Windows API Bible doesn’t seem to even mention that you can pass a NULL HWND to GetDC if you want to take a screenshot of the whole desktop. (I had to discover that from the comment at https://www.reddit.com/r/win16/comments/3m2be2/screenshot_utility_fo… )
Neither that nor their Windows API New Testament mentions how that kind of Program Manager hooking is accomplished. (The hypothesis I want to test when I can spare some time is that Program Manager is a big MDI window and specifying icons for minimized MDI children is something that can be intercepted and overridden using SetWindowsHook.)
Undocumented Windows and Windows Internals from the Schulman series are too low-level to account for the apparent ease with which a variety of shareware authors have customized Program Manager icons and, if they mention the ability to specify a NULL HWND, then it’s only as something you infer yourself from the chapters on how Windows’s internal data structures work.
Obviously, Petzold’s Programming Windows 3.1 and the Waite Group’s Windows Programming Primer Plus aren’t too eager to introduce former DOS programmers to how to manipulate things outside their assigned windows when they’ve just spent so much time convincing them to write programs that are courteous GUI citizens, and Petzold’s book has the only mention I’ve yet found of using GetDC(NULL)… as an offhand mention, in a single sentence, that just says that it’s undocumented but getting a whole-desktop DC may sometimes be useful in unspecified ways.
I haven’t yet managed to find search keywords which produce useful results for the Win16-era precursor to the MSDN library included on my Visual C++ 1.51+2.0 CD-ROM and, that said, I’d still like to have a source that’s easier to find a used copy of for others who want to use OpenWatcom C/C++ for nostalgic hobby work.
I haven’t had a chance to read all of The Old New Thing yet, but I don’t want to rely on something as unstructured as a blog for this kind of knowledge.
As you might expect, the Windows Resource Kit for Operation System Version 3.1 and the Windows for Workgroups Addendum for Operating System Version 3.11 aren’t that technical.
With my first Mac OSX computer powermac Beige tower with G3 processor card upgrade with hacks to install OSX, I promptly installed XWIN and KDE. That was the allure in those early days for me: easy unix desktop. I miss those days…