Here is a complete list of System Preferences Panes (as of macOS Monterey 12.2.1) and how to open them with a bash command. Not all panes support a URLScheme to open, but for those that do not you can use Applescript.
The macOS Ventura version of this list can be found here.
Preference Panes
- AppleID | Family Sharing
- General | Desktop & Screen Saver | Dock & Menu Bar | Mission Control | Siri | Spotlight | Language & Region | Notifications & Focus
- Internet Accounts | Passwords | Wallet & Apply Pay | Users & Groups | Accessibility | Screen Time | Extensions | Security & Privacy
- Software Update | Network | Bluetooth | Sound | Touch ID | Keyboard | Trackpad | Mouse
- Displays | Printers & Scanners | Battery | Energy Saver | Date & Time | Sharing | Time Machine | Startup Disk | Profiles
How To
open "x-apple.systempreferences:com.apple.preferences"
open "x-apple.systempreferences:com.apple.preferences.AppleIDPrefPane"
open "x-apple.systempreferences:com.apple.preferences.AppleIDPrefPane?iCloud"
(iCloud specific)
open "x-apple.systempreferences:com.apple.preferences.FamilySharingPrefPane"
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.general"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.general"' -e 'end tell'
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.desktopscreeneffect"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.desktopscreeneffect"' -e 'end tell'
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.dock"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.dock"' -e 'end tell'
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.expose"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.expose"' -e 'end tell'
open "x-apple.systempreferences:com.apple.preference.speech"
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.spotlight"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.spotlight"' -e 'end tell'
open "x-apple.systempreferences:com.apple.Localization"
Primary Pane: open "x-apple.systempreferences:com.apple.preference.notifications"
open "x-apple.systempreferences:com.apple.preference.notifications?Notifications"
open "x-apple.systempreferences:com.apple.preference.notifications?Focus"
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preferences.internetaccounts"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preferences.internetaccounts"' -e 'end tell'
open "x-apple.systempreferences:com.apple.Passwords"
open "x-apple.systempreferences:com.apple.preferences.wallet"
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preferences.users"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preferences.users"' -e 'end tell'
open "x-apple.systempreferences:com.apple.preference.universalaccess"
open "x-apple.systempreferences:com.apple.preference.screentime"
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preferences.extensions"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preferences.extensions"' -e 'end tell'
Primary Pane: open "x-apple.systempreferences:com.apple.preference.security"
open "x-apple.systempreferences:com.apple.preference.security?General"
open "x-apple.systempreferences:com.apple.preference.security?FDE"
open "x-apple.systempreferences:com.apple.preference.security?Firewall"
If you want to prompt the user to unlock any of the panes for editing, you can do so using open "x-apple.systempreferences:com.apple.preference.security?Advanced"
- Location Services:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_LocationServices"
- Contacts:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Contacts"
- Calendars:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Calendars"
- Reminders:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Reminders"
- Photos:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Photos"
- Camera:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Camera"
- Microphone:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Microphone"
- Speech Recognition:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_SpeechRecognition"
- Accessibility:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"
- Input Monitoring:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_ListenEvent"
- Full Disk Access:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"
- Files and Folders:
- Screen Recording:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture"
- Media & Apple Music:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Media"
- HomeKit:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_HomeKit"
- Bluetooth:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Bluetooth"
- User Availability:
- Automation:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Automation"
- Developer Tools:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_DevTools"
- Analytics & Improvements:
- Apple Advertising:
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Advertising"
open "x-apple.systempreferences:com.apple.preferences.softwareupdate"
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.network"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.network"' -e 'end tell'
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preferences.Bluetooth"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preferences.Bluetooth"' -e 'end tell'
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.sound"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.sound"' -e 'end tell'
open "x-apple.systempreferences:com.apple.preferences.password"
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.keyboard"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.keyboard"' -e 'end tell'
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.trackpad"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.trackpad"' -e 'end tell'
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.mouse"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.mouse"' -e 'end tell'
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.displays"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.displays"' -e 'end tell'
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.printfax"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.printfax"' -e 'end tell'
Primary Pane: open "x-apple.systempreferences:com.apple.preference.battery"
- Usage History:
open "x-apple.systempreferences:com.apple.preference.battery?usage"
- Battery:
open "x-apple.systempreferences:com.apple.preference.battery?battery"
- Power Adapter:
open "x-apple.systempreferences:com.apple.preference.battery?adapter"
- Schedule:
open "x-apple.systempreferences:com.apple.preference.battery?schedule"
- Current Source (Either Battery or Power Adapter depending on current sournce):
open "x-apple.systempreferences:com.apple.preference.battery?currentSource"
open "x-apple.systempreferences:com.apple.preferences.EnergySaverPrefPane"
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.datetime"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.datetime"' -e 'end tell'
open "x-apple.systempreferences:com.apple.preferences.sharing"
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.prefs.backup"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.prefs.backup"' -e 'end tell'
URLScheme not supported. Applescript alternative below.
tell application "System Preferences"
activate
set the current pane to pane id "com.apple.preference.startupdisk"
end tell
Bash-ready version:
osascript -e 'tell Application "System Preferences"' -e 'activate' -e 'set the current pane to pane id "com.apple.preference.startupdisk"' -e 'end tell'
open "x-apple.systempreferences:com.apple.preferences.configurationprofiles"
Let's say you come across this file, I haven't updated it, and a new version of macOS has come out that adds new System Preference panes or changes the names of existing ones. How do you discover where they are? I'm glad you asked.
You can find the pane and associated deeplink anchors with some applescript:
Paste the code below into Script Editor.app
, Open System Prefrence to the pane you want to identify, and run the script. It will output the name of the current pane and any associated anchors.
-- Open System Preferences.app and click into desired pane/setting. Then, run this script to find out name (Pane ID) and any anchors.
tell application "System Preferences"
set AppleScript's text item delimiters to ", "
set CurrentPane to the id of the current pane
get the name of every anchor of pane id CurrentPane
set CurrentAnchors to get the name of every anchor of pane id CurrentPane
set the clipboard to CurrentPane
display dialog "Current Pane ID: " & CurrentPane & return & return & "Pane ID has been copied to the clipboard." & return & return & "Current Anchors: " & return & (CurrentAnchors as string)
end tell
You'll get an output like this:
Interestingly, this doesn't capture ALL anchors that you can deeplink to. If you find some missing, you may want to dig into the preference pane itself and see if there's any bits of code that reference other available options that we can't identify as an achor. For example, the script above when run against the Security & Privacy Pane doesn't return any options for the Input Monitoring
section. However, I can open /System/Library/PreferencePanes/Security.prefPane/Contents/Resources/PrivacyTCCServices.plist
and see the key value I might be looking for is probably ListenEvent
Not all System Preference Panes support URLScheme. For those that don't, you can accomplish the same action of opening the pane with Applescript in most instances. But how do you know if a specific pane supports a URLScheme? Let's dive in!
Most of the System Preferences panes themselves are located within /System/Library/PreferencePanes/
.
Here's how to find if the pane supports url schemes:
- Open Finder and Go To
/System/Library/PreferencePanes
- Right click on the pane you want to inspect choose Inspect Package Contents
- Open the Contents >
Info.plist
. If it supports url scheme you'll see aNSPrefPaneAllowsXAppleSystemPreferencesURLScheme=1
If the pane DOES support a url scheme, then you can use the open
command + URLschemes listed above. If it does not, and you still want to open the pane via script, you could do so using Applescript.
- Note that some panes start with
com.apple.preference.
and some start withcom.apple.preferences.
, why is that? I have no clue, but don't let it trip you up if you're hunting and guessing at panes. - This documentation is for macOS Monterey. You may have limited success with older operating systems depending on how much System Preferences has changed between operating system versions and if those panes previously supported URLScheme or not.