♻️ Recycled thread, June 22 2022

I had an inkling it might be possible to patch AppKit in Mac OS X 10.0 to re-enable the NEXTSTEP interface style after it was removed during the Developer Previews — and I was right! So here’s the shipping, consumer Mac OS X without Aqua turned on. It’s rather broken and crashy

I did it by returning NSNextStepInterfaceStyleDefaultValue from __NSGlobalInterfaceStyle, a four-byte patch. Have fun!
Follow-up: Platinum also works 😄 Such a fun collection of mixed idioms
Here’s some more Mac OS X v10.0.0 with Aqua turned off in favor of Platinum, for funsies. As you can see, the UI is in a state of pure chaos. Many apps crash, open/save panels show no UI, window backgrounds are all over the place

I whipped up a little library to inject into previously-crashing apps, like Mail, awkwardly patching NSDrawer and NSToolbar support back into Platinum 😅 Even getting Project Builder up and running required a bunch of little tweaks.

It’s fun to know that it would be entirely plausible to patch Aqua almost completely out of the early versions of Mac OS X. I had no idea any of this survived, in such a complete form, past the Developer Previews/PB

@stroughtonsmith Did you ever release these patches anywhere? Would love to play with this.
@DropTableFoxes just what you see in the Project Builder screenshot, no binary
@stroughtonsmith and __NSGlobalInterfaceStyle is patched inside each app, right?
@DropTableFoxes no, in AppKit

@stroughtonsmith Ahh I see.

The existance of NSWindows95InterfaceStyle is amusing - but I guess this all descended from NextStep and later Rhapsody, which both did have x86 versions...

NSInterfaceStyle | Apple Developer Documentation

These constants are used in ’s method.

Apple Developer Documentation
@stroughtonsmith https://www.ict.griffith.edu.au/teaching/7421ICT/archive/resources/documentation/Developer/Gui/Reference/Functions.html appears to be an old version of the developer docs mentioning a defaults write command to change it... and http://www.rhapsodyos.org/misc/fiend/fiend_1.html shows that it was a setting in Rhapsody to change between NextStep and classic Mac UI... interesting that it existed into OS X...
Functions

@stroughtonsmith Although someone on SO says that the defaults write command doesn't work on OS X - https://serverfault.com/questions/5229/what-are-the-most-useful-defaults - so I guess that's why you had to patch it.
What are the most useful "defaults"?

Mac OS X has a commandline tool called "defaults". It lets you set certain properties, for example: enable the "Debug" menu in Safari: defaults write com.apple.Safari IncludeDebugMenu 1 What is ...

Server Fault
@DropTableFoxes yes it was an undocumented switch up to Mac OS X DP4. The switch was removed by the time 10.0 came out, but the code underneath it was not — which is what I patched here. And switching from Aqua to Platinum was never possible before, to my knowledge