From Control Panels to System Settings in Ventura

If and when you upgrade to Ventura, one of the first and most striking changes you’ll notice is System Settings. I’ve previously looked at the changes you’ll see, and how it’s going to make support documentation more difficult to use. This article looks in greater depth at what is changing, and how much is staying the same. First, though, a little history.

System Preferences were preceded by Control Panels in classic Mac OS. Here are couple of examples from Mac OS 9 in 2001.


In those days, even major internal features such as the use of virtual memory were set in the Memory Control Panel.


Networking was very different, but even then wasn’t easy to set in an accessible human interface.


Early versions of Mac OS X, here in 2002, resorted to more complex Network panes in their new System Preferences.

It’s worth following the changes in a simpler set of controls over time. Here I’ll take Sound as an example.


Mac OS 9 in 2001.


Mac OS X in 2002.


macOS 12 in 2021.


macOS 13 in 2022. Notable by their absence are checkboxes, although they’re still very much a part of the macOS human interface and preferred for these controls.

This next sequence shows how System Settings copes with the deeper needs of a wired Ethernet connection and its settings.


Click on the network interface, here the USB LAN adaptor at the top.


That takes you through to what is essentially a display of key information about that interface. To make any changes, click on the Advanced… button.


That drops down this modal dialog, which is only really marred by the fact that you can’t enlarge it to show its full contents, so have to scroll through it.

System Settings is thus very different, but what goes on behind it, and how has that changed? It turns out, not a lot.

Although the window of Preference Panes has gone, the list at the left is composed from .prefPane bundles stored in Library/PreferencePanes folders. Third-party panes may be out of fashion now, but should still work as expected when installed in /Library/PreferencePanes or ~/Library/PreferencePanes. Unlike the bundled panes, locked away with the rest of macOS on the SSV, third-party panes aren’t limited in size, in neither their height nor width, and System Settings’ window accommodates any changes in size perfectly happily. There’s no requirement to create their interface using SwiftUI, and even if you do, you’re more than welcome to use checkboxes if you prefer.

When you add a third-party Preference Pane, it’s listed at the end of the list at the left in System Settings, as you’d expect. It’s also added, in its correct place alphabetically, to the list in the View menu. The only feature that I can’t see it being given equal status to bundled panes is in System Settings’ search, although that may be a matter of building additional information into the pane itself.

From a developer’s viewpoint, nothing appears to have changed with Preference Panes either. They’re still written around NSPreferencePane, which doesn’t appear to have changed significantly since Mac OS X 10.1. Disappointingly, creating a new Preference Pane project in Xcode still doesn’t make any provision for the use of Swift, and has to be bridged into Objective-C as far as I can see.

Preference Panes that set or change preferences still generally work through Property Lists stored in one of the Library/Preferences folders, just as they always have.

So underneath their radically changed human interface, macOS Ventura still has Preference Panes that work essentially the same as they did in Monterey.