Legacy System Preferences
An expiremental, jank, slightly reverse-engineered attempt to return the old System Preferences to MacOS Ventura. Work in progress!
👋 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.
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
- Download the preference panes from here.
- Unzip the download. Use Finder to Rename > Add Text. Then, append the extension
.prefPaneto all items in unzipped directory.
- Make a folder
/Library/LegacyPrefPanesand 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.
- Finally, open
/Library/LegacyPrefPanesin Terminal, and run the
pane_stripper.shtool (located in source or release DMG). Don’t forget to chmod it first!
- NOW, YOU ARE READY.
Waitaminute! What does
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!!!
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 Status Table
This is a report of old system prefs (these) and their status. Note that the
Appearance pane works but is slightly unstable.
|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|