Legacy System Preferences

An expiremental, jank, slightly reverse-engineered attempt to return the old System Preferences to MacOS Ventura. Work in progress!

Silicon Support Silicon Support Releases

Example screenshot:

? Wait! Functionality Warning

Due to the nature of the project, some panes may be unstable or have limited functionality (see Pane Status Table), and some crucial features are not yet implemented (see Completion Checklist).

Some panes may require different privacy privileges in order to work properly. For example, screen recording for Appearance (weird, right?) or input monitoring for the keyboard menu in Accessibility.

Project Deets

Wat it do?

In order restore the classic System Preferences (albeit in a pretty janky manner), we use the NSPreferencePane framework in order to interface with .prefPane files. New MacOS still contains the old .prefPanes, but most of the bundles are empty (as App Extensions are now used); so instead of using the newer empty files, we rip the completed old ones (these) out of a previous release of MacOS.

(We don’t use the new App Extension files because that would require manually recreating each classic Pane view)

Why it do?

Because some of us miss the ways of old (see new System Settings).


The project source code is constructed from a weird mismash of old-Swift NSApp lifecycle, SwiftUI, and Objective-C. This frankenstein is both necessary, convenient, and a horrible pain.

Old Preference Pane Installation

  1. Download the preference panes from here.
  2. Unzip the download. Use Finder to Rename > Add Text. Then, append the extension .prefPane to all items in unzipped directory.
  3. Make a folder /Library/LegacyPrefPanes and move the preference panes into it.

Note: Just like classic System Preferences, this app will not function without .prefPane files. If /Library/LegacyPrefPanes is empty, you will have no panes available.

  1. Finally, open /Library/LegacyPrefPanes in Terminal, and run the pane_stripper.sh tool (located in source or release DMG). Don’t forget to chmod it first!

Waitaminute! What does pane_stripper.sh do?

pane_stripper.sh removes the code signature of all pref panes (for compatibilty), and flags them as safe to the system (to stop the system from killing the pane for not having a signature).

⚠️ Halt! Misc Disclaimers and Warnings

  • The app icon used by Legacy System Preferences was designed by Apple, not I, and belongs to the native System Preferences/Settings app.
  • The classic preference panes used by this app (these) were written and licensed by Apple, not I, and were ripped from a previous release of MacOS.
  • The app is compiled for x86 due to compatability reasons, and must run under Rosetta for Apple Silicon machines.

If any preference pane (3rd party or distributed by me via old macOS) via this app decides to wig out and bricks your machine or nukes your filesystem, don’t blame me for the catastrophe. This project is very much a jank experiment. You’ve been warned!!!

Completion Checklist

This is a checklist of crucial features I need to add and are in development currently.

  • User Avatar Setting
  • Search with Spotlight Focus
  • Backwards/Forwards Navigation
  • Crossfade Transitions
  • Alphabetical Pane Sorting
  • Pane Enable/Disable
  • 3rd Party Pane Support
  • Pane Loading

Pane Status Table

This is a report of old system prefs (these) and their status. Note that the Appearance pane works but is slightly unstable.

Status Pane(s)
Seemingly Working General, Spotlight, Language & Region, Sound, Sidecar, Date & Time, Energy Saver, Sharing, Network, Mouse, Security & Privacy, Extensions, Users & Groups, Mission Control
Missing Crucial Funcs Apple ID, Internet Accounts, Notifications, Desktop & Screensaver, Software Update, Startup Disk
Failing Fibre Channel, Dock, Family Sharing, Printer & Scanner, Siri, Bluetooth, Keyboard, Trackpad, Displays, Classroom, Profiles, Screen Time, Time Machine, Wallet
Untested or Seemingly Working Battery, CDs & DVDs


View Github