cd /news/developer-tools/some-applescript-automation-snippets · home topics developer-tools article
[ARTICLE · art-13308] src=gist.github.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Some AppleScript automation snippets

This article provides two AppleScript automation snippets for macOS. The first script checks if the running application has "Assistive Access" enabled and prompts the user to enable it if necessary. The second script enumerates the names and IDs of all panes within System Settings, returning a list of pane identifiers and their corresponding names.

read2 min views35 publishedDec 19, 2023

Check if app running the script has 'Assistive Access', and if not, prompts the user to enable it: -- Function to check if assistive access is enabled on hasAssistiveAccess() tell application "System Events" return UI elements enabled end tell end hasAssistiveAccess -- Get the name of the current application tell application "System Events" set currentAppName to name of the first process whose frontmost is true end tell

-- Main Script
if not hasAssistiveAccess() then

-- display dialog "This script requires assistive access to interact with System Settings. Please grant access in System Preferences under Security & Privacy > Privacy > Accessibility." buttons {"OK"} default button 1 display dialog "This script requires assistive access to interact with System Settings. Please grant access to '" & currentAppName & "' in System Preferences under Security & Privacy > Privacy > Accessibility." buttons {"OK"} default button 1 return end if Enumerate the name and ID of all of the panes within 'System Settings': tell application "System Settings" set paneList to every pane set paneMap to {} repeat with aPane in paneList set paneID to the id of aPane set paneName to the name of aPane set end of paneMap to {id:paneID, name:paneName} end repeat end tell

return paneMap
Which returns (manually formatted for easier reading):
{
{id:"com.apple.Appearance-Settings.extension", name:"Appearance"},
{id:"com.apple.Battery-Settings.extension*BatteryPreferences", name:"Battery"},
{id:"com.apple.settings.PrivacySecurity.extension", name:"Privacy & Security"},
{id:"com.apple.ExtensionsPreferences", name:"Extensions"},
{id:"com.apple.Profiles-Settings.extension", name:"Profiles"},
{id:"com.apple.BluetoothSettings", name:"Bluetooth"},
{id:"com.apple.ScreenSaver-Settings.extension", name:"Screen Saver"},
{id:"com.apple.Trackpad-Settings.extension", name:"Trackpad"},
{id:"com.apple.Keyboard-Settings.extension", name:"Keyboard"},

{id:"com.apple.systempreferences.AppleIDSettings*AppleIDSettings", name:"Glenn Grant"},

{id:"com.apple.Lock-Screen-Settings.extension", name:"Lock Screen"},
{id:"com.apple.Focus-Settings.extension", name:"Focus"},
{id:"com.apple.Screen-Time-Settings.extension", name:"Screen Time"},
{id:"com.apple.Sound-Settings.extension", name:"Sound"},
{id:"com.apple.Passwords-Settings.extension", name:"Passwords"},
{id:"com.apple.Touch-ID-Settings.extension*TouchIDPasswordPrefs", name:"Touch ID & Password"},
{id:"com.apple.Siri-Settings.extension", name:"Siri & Spotlight"},
{id:"com.apple.Network-Settings.extension", name:"Network"},
{id:"com.apple.systempreferences.GeneralSettings", name:"General"},
{id:"com.apple.SystemProfiler.AboutExtension", name:"About"},
{id:"com.apple.Software-Update-Settings.extension", name:"Software Update"},
{id:"com.apple.settings.Storage", name:"Storage"},
{id:"com.apple.AirDrop-Handoff-Settings.extension", name:"AirDrop & Handoff"},
{id:"com.apple.LoginItems-Settings.extension", name:"Login Items"},
{id:"com.apple.Localization-Settings.extension", name:"Language & Region"},
{id:"com.apple.Date-Time-Settings.extension", name:"Date & Time"},
{id:"com.apple.Sharing-Settings.extension", name:"Sharing"},
{id:"com.apple.Time-Machine-Settings.extension", name:"Time Machine"},
{id:"com.apple.Transfer-Reset-Settings.extension", name:"Transfer or Reset"},
{id:"com.apple.Startup-Disk-Settings.extension", name:"Startup Disk"},
{id:"com.apple.Displays-Settings.extension", name:"Displays"},
{id:"com.apple.WalletSettingsExtension", name:"Wallet & Apple Pay"},
{id:"com.apple.ControlCenter-Settings.extension", name:"Control Centre"},
{id:"com.apple.Internet-Accounts-Settings.extension", name:"Internet Accounts"},
{id:"com.apple.Mouse-Settings.extension", name:"Mouse"},
{id:"com.apple.Users-Groups-Settings.extension", name:"Users & Groups"},
{id:"com.apple.Print-Scan-Settings.extension", name:"Printers & Scanners"},
{id:"com.apple.Desktop-Settings.extension", name:"Desktop & Dock"},
{id:"com.apple.Accessibility-Settings.extension", name:"Accessibility"},
{id:"com.apple.Game-Center-Settings.extension", name:"Game Center"},
{id:"com.apple.wifi-settings-extension", name:"Wi‑Fi"},
{id:"com.apple.Notifications-Settings.extension", name:"Notifications"},
{id:"com.apple.Wallpaper-Settings.extension", name:"Wallpaper"},
{id:"cl.fail.lordkamina.SwiftDefaultApps", name:"SwiftDefaultApps"}
}
── more in #developer-tools 4 stories · sorted by recency
── more on @apple 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/some-applescript-aut…] indexed:0 read:2min 2023-12-19 ·