Projects for Old Versions of OS X
jonathanalland.com
jonathanalland.com
Aqua in OS X 10.9 and below are naturally designed with high contrast and tonal range in mind.
And unity8 (now Lomri) is in perpetual beta, and written in Qt.
"You say that like it's a bad thing."
> And unity8 (now Lomri) is in perpetual beta, and written in Qt.
Is it now? I wonder if it's a descendant of Unity-2D then. That was in Qt and seems to be forgotten now.
Yes, it does seem mired in dev hell, and I wonder how much is really left to do.
Canonical got a lot of stick, especially on here, about Unity etc. (and still do over Snap).
https://news.ycombinator.com/item?id=14002821
I think it's undeserved. Unity was and is a damned good desktop, it's just different. Some people are neophobic. There's more to life than the Win95 desktop.
IMHO Canonical's only big mistake, really, was Mir.
Wayland remains controversial, and I'm not qualified to judge why. But like systemd, it is basically the new standard, and so going with it would have been pragmatic.
Trying to write a new WM _and_ a new desktop _and_ a mobile OS _and_ a new packaging format _and_ a new display server was a big stretch. Eliminating one big chunk of it seems like a win to me.
Apparently not to them: they pressed ahead and then abandoned the whole thing.
Damned shame. _Someone_ in the Linux world needed to address mobile/tablets. It is the entire herd of elephants stampeding about the room.
IMHO a few sketchy efforts based on GNOME and KDE are not really enough.
Wayland is going to have a hard time being "the new standard" if it continues down it's path of less hardware compatibility, less software compatibility and less overall functionality. I'm willing to point the finger squarely at GNOME here too, because they've intentionally gimped Wayland's development over the years under the guise that they're the lead implementation, while giving the rest of the community the pittance of wlroots. This has been disastrous to the development cycle of Wayland, and ended up splintering the wrong projects and blocking the right features. Stuff like app tray indicators have been completely depreciated on a system level solely because GNOME said they didn't want them. It's really petty, and it certainly isn't moving desktop Linux forward.
In general, everything GNOME-related after Unity has just been a really slow downhill decline. The freshness and uniqueness of the desktop is dead, all we're left with now is a lame Mac clone that can't even play nice with the rest of the community. This is probably a real "old man yells at cloud" moment by most respects, but watching their behavior in recent years frustrates and disappoints me. They used to be a pretty respectable group of maintainers; now it's just drip-fed patches, gutting old features and setting inane new precedents as "the standard" and getting mad at downstream maintainers when they don't adopt them.
I would quibble over:
> Frankly, I don't think Wayland has the functionality to support what people want to do on Desktop Linux.
The problem is that people don't want one single thing from desktop Linux. For some people, for instance, remoting the whole GUI over the network is really important, whereas TBH I suspect that for most people, it isn't important at all and in fact is not only irrelevant, it's actually a hindrance to stuff they want, such as (random examples) very high frame-rate 3D-accelerated true-colour graphics driven by a modern GPU.
And I suspect that you can't have it both ways.
Me, I want independently settable fractional scaling on multiple monitors. I don't give a stuff about frame rates, resolution, hi-DPI support, OpenGL, any of that, but what my 2015 Retina iMac does -- plug in a screen and whatever its DPI the OS just magically adjusts the display settings so everything remains the same size -- that is very important to me. I don't want to do it myself. I don't want or care about or need 3D or anything. I just want all my screens to be nice and sharp and show the same thing at the same size. Resolutions are a trivial implementation detail I don't care about.
My impression is that this isn't on the radar of any mainstream distro.
As for my desktop, I want to be able to place toolbars or panels on the edges of the whole desktop, across 2 or 3 or more screens, where I choose, not where the programmers chose. GNOME is not even able to think about this idea. You get what the designers chose because they know best.
KDE used to do it, badly. KDE 5 does it worse. I don't like it, either.
Oddly, for all the hoopla about Gtk $VERSION and weird stuff about refresh rates and stuff I don't care about, Xfce, the old-fashioned low-tech desktop does this best. Go figure.
All of them are rubbish compared to how macOS handles this stuff, and Windows 10 was only a bit better. Windows 11 is as broken as GNOME etc.
That's progress. Apparently.
It makes me want to go back to a text-only console sometimes. But I am very very old and opinionated, and then I blow the minds of all the xNix fans by saying that I don't actually like the xNix shell and never did. Any of them from `sh` to `fish`, they all annoy me. I preferred the MS-DOS and OpenVMS command lines, myself.
Since most other people who can remember before xNix ruled the waves are retired or dead, that is foul heresy to most techies alive today.
Mountain Lion went a long way towards fixing Lion's problems, and Mavericks just about finished the job. Which is why I run Mavericks. The only remaining Lion things I really dislike are the Launchpad, the hidden Library folder, and some minor-ish aesthetic differences. I've patched some of these.
Hm. I've never written anything serious for Apple platforms but of course played around for a bit. But, I've always assumed ARC is implemented purely in the compiler, isn't it? I remember disassembling something I wrote and learning that the compiler inserted retain/release calls as necessary.
> Which is why I run Mavericks.
Actually, I ran Mavericks for several years after it was superseded. I was made fun of by some people (who complained about glitchy WiFi on Yosemite, lol). Had to finally update when I got a new job and needed to compile an iOS app, which required latest Xcode, which required latest macOS. Then I stayed on Mojave for like 2 more years, refusing to update to Catalina to keep using 32-bit apps. And then several months ago I bought an M1 Max MacBook, which means Monterey.
ARC does partially work on Snow Leopard, but only for 64-bit, and it's limited (namely, you can't use weak references).
Updating MacOS means I have to spend weeks:
1. Finding third-party utilities to replace what Apple took away.
2. Finding ways to disable the shiny new things Apple added that get in my way and are not officially turn-offable.
3. Finding workarounds for new bugs Apple introduced.
And recently,
4. Disabling all the new phone-home daemons Apple added.
MacOS has become a shitshow.
I didn't use any icloud stuff and was kinda shocked how much the OS called the mothership after installing little snitch ... Never properly gotten into finding what every daemon does and if I could disable it.
I typically have to spend some time bisecting this script to keep the few services I need (e.g. Messages) running. It's time-consuming because some services depend on others that have different names, so it's not as straightforward as simply re-enabling every daemon that contains the string "message."
Little Snitch [1] is also quite useful; it's probably easier to install LS with everything disabled and then gradually reenable the daemons you want. I use LS more than I use the above script these days...although LS still allows the daemons to run and consume CPU time, which the script stops. Probably best to use some combination of both approaches, and keep track of any edits you make to the script because Apple will likely reenable everything the next time you upgrade MacOS.
[0] https://gist.github.com/pwnsdx/1217727ca57de2dd2a372afdd7a0f...
Switching to other OS is not an option for me at this point. Everything else is even worse. Windows is a piece of malware at this point (in addition to being a UX consistency clusterfuck and Microsoft's insistence on making touchscreens a thing), desktop Linux is as much of a nightmare as it's always been.
• Me getting modern Unity games to run on Mavericks: https://apple.stackexchange.com/questions/414688/how-can-i-r...
• Me kind-of sort-of getting Mavericks to install on a slightly-too-new Macbook Air: https://apple.stackexchange.com/questions/402726/how-can-i-a...
I'm currently running Mavericks on a Hackintosh with an i7-4790K a GTX 780 6GB. I wrote some more details on how I arrived at this point, and other things I tried, down-thread: https://news.ycombinator.com/item?id=31206278
No one has asked about security yet, which always seems to come up. My feeling is that (1) my computer is behind a router with up-to-date firmware, (2) I'm using an up-to-date web browser, (3) I'm relatively careful about what software I install, and (4) I regularly back up my data to cold storage. There are absolutely gaps, but in exchange for this small risk, I enjoy using my computer much more than I would otherwise.
Sorry if you have already answered in another thread.
I'm not sure what the current deal with hackintosh is, but I'm vaguely under the impression that there's at least one that is open source, then there's an open source boot loader rEFInd as well.
Hopefully someone can confirm or refute my impression.
The older standard was Clover, also open source: https://github.com/CloverHackyColor/CloverBootloader
The new standard for Hackintosh bootloaders is OpenCore, but I've been using Clover for years and haven't had any problems with it. And, I suspect Clover has been tested more extensively with older versions of OS X, just by the nature of when it was developed and released.
The SIMBL on my website uses an unmodified SIMBLAgent binary taken from an older version of w0lfchild's mySIMBL (https://github.com/w0lfschild/mySIMBL). However, I recompiled his SIMBL.osax with 32-bit support added back in, since I use a lot of 32-bit apps: https://github.com/Wowfunhappy/MacForgeFramework
Quick note that I don't really understand this code, I can just tell you that it works, at least on Mavericks.
Then came the Tim Cook era, and with it came the gradual locking down of the Mac, both in terms of hardware (for example, the soldering of formerly upgradable components such as RAM and storage) and software (for example, notarization). The user interface also gradually started adopting more iOS influences, which I think take away from the desktop experience. Due to my disappointment with Apple's direction (especially since roughly 2016), I opted not to upgrade my aging 2013 MacBook Air and 2013 Mac Pro with new Macs, instead switching to a Microsoft Surface Pro (running Windows 10) and a custom Ryzen 3900X build (which runs both Windows 10 and FreeBSD). I miss macOS, but I enjoy the openness of PCs, and I enjoy the flexibility of Windows and FreeBSD.
I am keeping an eye on two very interesting projects that attempt to replicate the spirit of early Mac OS X: helloSystem (https://hellosystem.github.io/docs/) and airyxOS (https://airyx.org/). Both projects are based on a FreeBSD foundation, but the major difference between the projects is airyxOS is a much more ambitious attempt to reimplement macOS's infrastructure (even going as far as to aim for supporting "trivial" Cocoa applications), while helloSystem has different (Qt) underpinnings, with an emphasis on replicating the Mac OS X look-and-feel and promoting adherence to the Macintosh Human Interface Guidelines. If these projects become successful, this will provide people who desire the early Mac OS X experience modern systems that will maintain that experience.
I’d lose access to 20 or so years of musical projects, and I’d have to get used to some completely new DAW, none of which appeal to me.
I also do iOS and WatchOS development as my main source of income, meaning I’m completely stuck on MacOS. I make a lot of money doing it and it’s kept me solidly employed for a decade.
So - while I personally can’t jump over to any alternative OS without shooting myself in the foot - maybe I can suggest these to friends who possibly could, or are thinking about alternatives to MacOS. :)
Once again, it's clear that despite my preference for MacOS and Linux, Windows is the only way forward for long-term compatibility with software that isn't produced as an ongoing service. Whether it's specialty software that isn't updated constantly forever, or games, the lack of commitment to backwards compatibility is destructive.
People have been complaining about Apple ever since I started using Mac OS X in 2003, and of course before that as well. For each release, someone on Slashdot was complaining about it being too Windows-like, or too locked down, or the UX was just all wrong.
All in all, I feel it's been a ride well worth being a part of. Right now I'm on Mojave and to me that's probably the most ideal macOS experience I've ever seen.
I started in the Tiger/Leopard era (2007) and I loved the hardware and OS X. After the introduction of the iPad there was a slow and painful decline, culminating in the terrible butterfly keyboard and really buggy macOS versions. I dabbled in Linux desktops again and mostly prepared to abandon the Apple ecosystem.
The last few years Apple seems to care about the Mac again. Apple Silicon is awesome and the last two macOS versions have been stellar for me (especially on M1 CPUs). The macOS ecosystem is very exciting again.
I was coming from a decade of Windows and a summer of Ubuntu 7.04 that I would, from time-to-time, spend hours customizing to look like Mac OS. Also coming to terms that I just wanted, and could afford, the real thing was very freeing.
The worst part is that for every 5 cool things they add, they do at least one really stupid annoying new thing on macOS that makes using newer systems annoying.
For example, if there is one thing I recommend everyone do right now, is set this on newer macOS:
`NSAlertMetricsGatheringEnabled = 0`
It completely removes the majority of those stupid iOS-style alert boxes and returns them to the older sane layout.
I do all of my development with VMs. It lets me instantly switch between xCode versions, and install dependencies without messing with the state of my real system.
(P.S. I also have Tiger and Snow Leopard VMs, but this requires patching VMWare and is definitely not endorsed by Apple!)
However, what really helps me is developers who document when support for an old OS was dropped, and continue to make older compatible versions of their software available for download and purchase. I have spent countless hours digging through the Internet Archive, doing a manual bisect to find the last compatible version of some app. Sometimes only to realize at the end that this version won't work with new license keys.
Worst of all are apps that have auto-update mechanisms I can't disable, which automatically replace my old working copy with a new version that crashes on launch. Please, don't do this!
---
Apps designed to be cross-platform are a different story. I think it's more than a little annoying that Google Chrome doesn't support OS X 10.10 and older, when the set of changes needed to support back to 10.7 is really quite minuscule, relative to the size of the Chromium codebase: https://github.com/chromium/chromium/compare/main...blueboxd...
If a single developer working in his free time is able to maintain backwards compatibility, the full force of Google should be able to do it too. Not just for weird people like me who are strangely emotionally attached to old versions of OS X, but for people in Guatemala who literally can't afford to upgrade their hardware!
I'm a Cocoa developer and go out of my way to do this. You can find and download the last supported version of my app for each major OS X release here: https://help.aetherlog.com/faq/oldversions/ (linked from the main page on the website). I've also intentionally kept the license key scheme the same so a license purchased today will activate any version of the app, even very old ones.
I hear not-too-infrequently from users who have an old Mac that they want to use for my software, and it's nice to have a solution for them. The caveat of course is that some things are inevitably broken with regard to (third-party) web APIs that have changed. But I'm lucky that my app's core functionality isn't dependent on an internet connection at all.
defaults write -g NSAlertMetricsGatheringEnabled -bool false
And it's amazing, thanks. Is there also a command to remove the paddings on the sides in sidebars and menus?I’ve dubbed it the “Snow Leopard” of modern macOS. IIRC it’s coincidentally the second release after a CPU architecture change, too.
It's a shame they have let some of these parts die and locked down other bits.
Having a media player that doesn't accept other codeca by default is just mean.
When I decided to downgrade to Mavericks, my initial plan was to use a type 1 hypervisor with GPU passthrough for close-to-bare-metal performance on modern Intel platforms. Unfortunately, I have never been able make GPU passthrough work under Mavericks. I tried two different Mavericks-compatible graphics cards, a GTX 780 6GB and a GTX 780 Ti. In both cases, passthrough works fine in High Sierra, but not in the older releases I wanted to run.
Then I discovered that in 2017, a developer named Bronya had released a custom Mavericks kernel with Ryzen compatibility, to little fanfare. I ran down to microcenter and bought the just-released 16-core Ryzen 3950x, and went about building what would probably have been the most powerful Mavericks machine on the planet. It worked, but only when graphics acceleration was disabled. My GTX 780 Ti froze after logging in. My GTX 780 displayed a beautiful desktop in full resolution, but the entire machine slowed to a crawl when it was in use. Opening new Finder windows took upwards of 60 seconds, perhaps related to a cryptic message that kept appearing in the console: "kernel: NVDA: Channel Timeout!"
I suspect that Bronya's kernel has some sort of bug with Kepler-series nVidia GPUs, in which case, a different Mavericks-compatible GPU would have worked. Unfortunately, I could not get my hands on an alternate GPU in time for Microcenter's 7-day return window, and I decided to cut my losses and return everything. Bronya's kernel is also closed source.
Instead, I built a new Hackintosh around an Intel Core i7 4790K (4C 8T 4 Ghz), the GTX 780 6 GB I already had, and 32 GB of the fastest DDR3 memory I could find (2400 MHz). This is the machine I'm typing on right now, and I think it's just about the fastest hardware Mavericks can run on if single-core performance is prioritized. It more than holds its own against modern hardware.
I mostly haven't been able to ask for help in Hackintosh forums, because no one else is interested in trying to run such old releases. If anyone else is trying to build a Mavericks-compatible Hackintosh, please get in touch and I'll do my best to help.
I would like to try Ryzen again some day, with an AMD GPU.
Also it spies on you: https://github.com/microsoft/calculator/blob/e9a974d1dd4333f...
(there's also OCR now, and it beats anything else I've seen in speed and accuracy with a healthy margin. It somehow indexed old photos of handwritten notes that I have trouble reading myself)
You can use QuickTime 7 on High Sierra with third party codecs. I am not a fan of QuickTime 7.
I looked at Snow Leopard. It's famous, it supports Rosetta, and it was my first version of OS X. However, I also think it's somewhat overrated. I remember spending hours writing a paper for High School under Snow Leopard in iWork '09, and loosing hours of work due to a power outage. Yes, I should have remembered to save my work, but I was in the flow of writing!
I like a lot of what Apple did in Lion, including some of the more controversial changes, such as autosaving and fullscreen support. Launchpad is an abomination, but it can be mostly pushed aside and ignored. And while Lion itself is a buggy mess, Apple did a lot of polishing in Mountain Lion and Mavericks.
I spent a while deciding between Mountain Lion and Mavericks:
- Performance seems to be identical except in low memory situations, where Mavericks comes out ahead, likely because it supports memory compression.
- I like interfaces that have texture and depth, but I was never a fan of the extreme skeuomorphism of early iOS. Many of the default apps in Mountain Lion share that visual style, with plush leather backgrounds and stitched edges. The Mavericks versions of these apps take a more abstract approach, and actually look closer to Snow Leopard.
- The Mountain Lion version of QuickTime Player was the last to support third party video codecs. I eventually solved this problem by getting the Mountain Lion version of QuickTime to work on Mavericks.
- Mavericks has much better software support than Mountain Lion. I'm actually still able to run the latest official versions of Zoom and the Affinity Suite. Mavericks supports the same version of OpenGL as the latest versions of macOS, so games tend to work.
Mavericks was the sweet spot for me, and I do think it's probably the best version of OS X in general. There are certain things that other versions did better, but no software is perfect, and many of Mavericks's imperfections are things I'm able to fix.
Edit: from around 2001
Or offer them online, for instance in the FB VintageMacs group, or the LowEndMac.com mailing lists, or somewhere.
I am sure you will find many takers.
Never ever throw away or recycle working computer kit. Someone somewhere will want it.
The level of dedication here is simply amazing.
For example, the "Chromium Legacy Downloader" just adds automatic updates (and some tweaks) to to an existing project. Chromium Legacy itself—a branch of Chromium kept in sync with upstream which retains support for legacy OS X—is maintained by a Japanese developer I don't know much about. https://github.com/blueboxd/chromium-legacy.
Other downloads, like the Dolphin emulator, are basically just source recompiles, which use MacPorts tooling to support legacy OS X. MacPorts has incredible legacy support.