Skip to content

General

Everything under System Settings › General, as Nix options. Each one is named after the control you'd click, and set under programs.nix-plist-manager.options in home-manager and nix-darwin.

41 options 27 verified against System Settings

App Store › Settings › Automatic Updates

nix-darwin · system-wide Not verified
applications.systemSettings.general.softwareUpdate.automaticallyInstallApplicationUpdatesFromTheAppStore = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • /Library/Preferences/com.apple.commerce AutoUpdate

For false:

/usr/bin/defaults write /Library/Preferences/com.apple.commerce AutoUpdate -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.commerce AutoUpdate -bool false' >&2

For true:

/usr/bin/defaults write /Library/Preferences/com.apple.commerce AutoUpdate -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.commerce AutoUpdate -bool true' >&2

For unset:

/usr/bin/defaults delete /Library/Preferences/com.apple.commerce AutoUpdate 2>/dev/null || true

System Settings › General › AirDrop & Continuity › AirDrop

home-manager · per user ✓ Verified on macOS 27 Restarts sharingd
applications.systemSettings.general.airDropAndContinuity.airDrop = "Contacts Only";

One of: "Contacts Only""Everyone""No One" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.sharingd DiscoverableMode

For Contacts Only:

/usr/bin/defaults write com.apple.sharingd DiscoverableMode -string 'Contacts Only' || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.sharingd DiscoverableMode -string '\''Contacts Only'\''' >&2
/usr/bin/defaults -currentHost delete com.apple.sharingd DiscoverableMode 2>/dev/null || true
/usr/bin/killall sharingd 2>/dev/null || true

For Everyone:

/usr/bin/defaults write com.apple.sharingd DiscoverableMode -string Everyone || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.sharingd DiscoverableMode -string Everyone' >&2
/usr/bin/defaults -currentHost delete com.apple.sharingd DiscoverableMode 2>/dev/null || true
/usr/bin/killall sharingd 2>/dev/null || true

For No One:

/usr/bin/defaults write com.apple.sharingd DiscoverableMode -string Off || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.sharingd DiscoverableMode -string Off' >&2
/usr/bin/defaults -currentHost delete com.apple.sharingd DiscoverableMode 2>/dev/null || true
/usr/bin/killall sharingd 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.sharingd DiscoverableMode 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.sharingd DiscoverableMode 2>/dev/null || true
/usr/bin/killall sharingd 2>/dev/null || true

System Settings › General › AirDrop & Continuity › AirPlay Receiver

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.general.airDropAndContinuity.airPlayReceiver = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.controlcenter AirplayReceiverEnabled (current host)

For false:

/usr/bin/defaults -currentHost write com.apple.controlcenter AirplayReceiverEnabled -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.controlcenter AirplayReceiverEnabled -bool false' >&2
/usr/bin/killall ControlCenter 2>/dev/null || true

For true:

/usr/bin/defaults -currentHost write com.apple.controlcenter AirplayReceiverEnabled -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.controlcenter AirplayReceiverEnabled -bool true' >&2
/usr/bin/killall ControlCenter 2>/dev/null || true

For unset:

/usr/bin/defaults -currentHost delete com.apple.controlcenter AirplayReceiverEnabled 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

Allow Handoff between this Mac and your iCloud devices

Section titled “Allow Handoff between this Mac and your iCloud devices”

System Settings › General › AirDrop & Continuity › Allow Handoff between this Mac and your iCloud devices

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.general.airDropAndContinuity.allowHandoffBetweenThisMacAndYourIcloudDevices = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.coreservices.useractivityd ActivityAdvertisingAllowed (current host)
  • com.apple.coreservices.useractivityd ActivityReceivingAllowed (current host)

For false:

/usr/bin/defaults -currentHost write com.apple.coreservices.useractivityd ActivityAdvertisingAllowed -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.coreservices.useractivityd ActivityAdvertisingAllowed -bool false' >&2
/usr/bin/defaults -currentHost write com.apple.coreservices.useractivityd ActivityReceivingAllowed -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.coreservices.useractivityd ActivityReceivingAllowed -bool false' >&2

For true:

/usr/bin/defaults -currentHost write com.apple.coreservices.useractivityd ActivityAdvertisingAllowed -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.coreservices.useractivityd ActivityAdvertisingAllowed -bool true' >&2
/usr/bin/defaults -currentHost write com.apple.coreservices.useractivityd ActivityReceivingAllowed -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.coreservices.useractivityd ActivityReceivingAllowed -bool true' >&2

For unset:

/usr/bin/defaults -currentHost delete com.apple.coreservices.useractivityd ActivityAdvertisingAllowed 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.coreservices.useractivityd ActivityReceivingAllowed 2>/dev/null || true

System Settings › General › AirDrop & Continuity › iPhone Widgets

home-manager · per user ✓ Verified on macOS 27 Restarts chronod
applications.systemSettings.general.airDropAndContinuity.iPhoneWidgets = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.chronod remoteWidgetsEnabled

For false:

/usr/bin/defaults write com.apple.chronod remoteWidgetsEnabled -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.chronod remoteWidgetsEnabled -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.chronod remoteWidgetsEnabled 2>/dev/null || true
/usr/bin/killall chronod 2>/dev/null || true

For true:

/usr/bin/defaults write com.apple.chronod remoteWidgetsEnabled -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.chronod remoteWidgetsEnabled -bool true' >&2
/usr/bin/defaults -currentHost delete com.apple.chronod remoteWidgetsEnabled 2>/dev/null || true
/usr/bin/killall chronod 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.chronod remoteWidgetsEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.chronod remoteWidgetsEnabled 2>/dev/null || true
/usr/bin/killall chronod 2>/dev/null || true

System Settings › General › AutoFill & Passwords › AutoFill from › Passwords

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.general.autoFillAndPasswords.autoFillFromPasswords = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.Safari AutoFillFromiCloudKeychain

For false:

/usr/bin/defaults write com.apple.Safari AutoFillFromiCloudKeychain -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.Safari AutoFillFromiCloudKeychain -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.Safari AutoFillFromiCloudKeychain 2>/dev/null || true

For true:

/usr/bin/defaults write com.apple.Safari AutoFillFromiCloudKeychain -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.Safari AutoFillFromiCloudKeychain -bool true' >&2
/usr/bin/defaults -currentHost delete com.apple.Safari AutoFillFromiCloudKeychain 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.Safari AutoFillFromiCloudKeychain 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.Safari AutoFillFromiCloudKeychain 2>/dev/null || true

System Settings › General › AutoFill & Passwords › AutoFill Passwords and Passkeys

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.general.autoFillAndPasswords.autoFillPasswordsAndPasskeys = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.Safari AutoFillPasswords

For false:

/usr/bin/defaults write com.apple.Safari AutoFillPasswords -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.Safari AutoFillPasswords -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.Safari AutoFillPasswords 2>/dev/null || true

For true:

/usr/bin/defaults write com.apple.Safari AutoFillPasswords -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.Safari AutoFillPasswords -bool true' >&2
/usr/bin/defaults -currentHost delete com.apple.Safari AutoFillPasswords 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.Safari AutoFillPasswords 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.Safari AutoFillPasswords 2>/dev/null || true

System Settings › General › AutoFill & Passwords › Verification Codes › Delete After Use

home-manager · per user Not verified
applications.systemSettings.general.autoFillAndPasswords.deleteVerificationCodesAfterUse = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.onetimepasscodes DeleteVerificationCodes
  • com.apple.MobileSMS DeleteVerificationCodes

For false:

/usr/bin/defaults write com.apple.onetimepasscodes DeleteVerificationCodes -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.onetimepasscodes DeleteVerificationCodes -bool false' >&2
/usr/bin/defaults write com.apple.MobileSMS DeleteVerificationCodes -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.MobileSMS DeleteVerificationCodes -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.onetimepasscodes DeleteVerificationCodes 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.MobileSMS DeleteVerificationCodes 2>/dev/null || true

For true:

/usr/bin/defaults write com.apple.onetimepasscodes DeleteVerificationCodes -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.onetimepasscodes DeleteVerificationCodes -bool true' >&2
/usr/bin/defaults write com.apple.MobileSMS DeleteVerificationCodes -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.MobileSMS DeleteVerificationCodes -bool true' >&2
/usr/bin/defaults -currentHost delete com.apple.onetimepasscodes DeleteVerificationCodes 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.MobileSMS DeleteVerificationCodes 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.onetimepasscodes DeleteVerificationCodes 2>/dev/null || true
/usr/bin/defaults delete com.apple.MobileSMS DeleteVerificationCodes 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.onetimepasscodes DeleteVerificationCodes 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.MobileSMS DeleteVerificationCodes 2>/dev/null || true

System Settings › General › Date & Time › 24-hour time

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.general.dateAndTime.24HourTime = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain AppleICUForce12HourTime
  • NSGlobalDomain AppleICUForce24HourTime

For false:

/usr/bin/defaults write NSGlobalDomain AppleICUForce12HourTime -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUForce12HourTime -bool true' >&2
/usr/bin/defaults write NSGlobalDomain AppleICUForce24HourTime -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUForce24HourTime -bool false' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUForce12HourTime 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUForce24HourTime 2>/dev/null || true

For true:

/usr/bin/defaults write NSGlobalDomain AppleICUForce12HourTime -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUForce12HourTime -bool false' >&2
/usr/bin/defaults write NSGlobalDomain AppleICUForce24HourTime -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUForce24HourTime -bool true' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUForce12HourTime 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUForce24HourTime 2>/dev/null || true

For unset:

/usr/bin/defaults delete NSGlobalDomain AppleICUForce12HourTime 2>/dev/null || true
/usr/bin/defaults delete NSGlobalDomain AppleICUForce24HourTime 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUForce12HourTime 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUForce24HourTime 2>/dev/null || true

System Settings › General › Date & Time › Set time and date automatically

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.dateAndTime.setTimeAndDateAutomatically = true;

true or false

Where it's stored and what runs
  • /Library/Preferences/com.apple.timed TMAutomaticTimeOnlyEnabled

For false:

/usr/sbin/systemsetup -setusingnetworktime off >/dev/null 2>&1 || echo 'nix-plist-manager: failed: systemsetup -setusingnetworktime off' >&2

For true:

/usr/sbin/systemsetup -setusingnetworktime on >/dev/null 2>&1 || echo 'nix-plist-manager: failed: systemsetup -setusingnetworktime on' >&2

Set time zone automatically using your current location

Section titled “Set time zone automatically using your current location”

System Settings › General › Date & Time › Set time zone automatically using your current location

nix-darwin · system-wide Not verified
applications.systemSettings.general.dateAndTime.setTimeZoneAutomaticallyUsingYourCurrentLocation = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • /Library/Preferences/com.apple.timezone.auto Active

For false:

/usr/bin/defaults write /Library/Preferences/com.apple.timezone.auto Active -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.timezone.auto Active -bool false' >&2

For true:

/usr/bin/defaults write /Library/Preferences/com.apple.timezone.auto Active -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.timezone.auto Active -bool true' >&2

For unset:

/usr/bin/defaults delete /Library/Preferences/com.apple.timezone.auto Active 2>/dev/null || true

System Settings › General › Date & Time › Source

nix-darwin · system-wide Not verified

The network time server, e.g. "time.apple.com".

applications.systemSettings.general.dateAndTime.source = "…";

Text

Where it's stored and what runs

For …:

/usr/sbin/systemsetup -setnetworktimeserver '…' >/dev/null 2>&1 || echo 'nix-plist-manager: failed: systemsetup -setnetworktimeserver '\''…'\''' >&2

System Settings › General › Date & Time › Time zone

nix-darwin · system-wide Not verified

A time zone from systemsetup -listtimezones, e.g. "Europe/Amsterdam".

applications.systemSettings.general.dateAndTime.timeZone = "…";

Text

Where it's stored and what runs

For …:

/usr/sbin/systemsetup -settimezone '…' >/dev/null 2>&1 || echo 'nix-plist-manager: failed: systemsetup -settimezone '\''…'\''' >&2

System Settings › General › Language & Region › Applications

home-manager · per user Not verified

Languages for single apps, by bundle identifier, most preferred first, e.g. { "com.spotify.client" = [ "nl" ]; }. An empty list makes the app follow the system again. Apps left out are left as they are.

applications.systemSettings.general.languageAndRegion.applications = {
"com.example.app" = [
"nl"
];
};

Per app, by bundle identifier (see the example)

Where it's stored and what runs
  • ~/Library/Preferences/<application> AppleLanguages

For { com.example.app = ["nl"]; }:

/usr/bin/defaults write com.example.app AppleLanguages -array -string nl

System Settings › General › Language & Region › Date format

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.general.languageAndRegion.dateFormat = "19-08-2026";

One of: "19-08-2026""19.08.2026""19/08/2026""19/8/26""2026-08-19""2026.08.19""2026/8/19""8/19/2026""8/19/26" "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain AppleICUDateFormatStrings

For 19-08-2026:

/usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string dd-MM-y || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string dd-MM-y' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true

For 19.08.2026:

/usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string dd.MM.y || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string dd.MM.y' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true

For 19/08/2026:

/usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string dd/MM/y || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string dd/MM/y' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true

For 19/8/26:

/usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string d/M/yy || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string d/M/yy' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true

For 2026-08-19:

/usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string y-MM-dd || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string y-MM-dd' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true

For 2026.08.19:

/usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string y.MM.dd || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string y.MM.dd' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true

For 2026/8/19:

/usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string y/M/d || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string y/M/d' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true

For 8/19/2026:

/usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string M/d/y || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string M/d/y' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true

For 8/19/26:

/usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string M/d/yy || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUDateFormatStrings -dict 1 -string M/d/yy' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true

For unset:

/usr/bin/defaults delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUDateFormatStrings 2>/dev/null || true

System Settings › General › Language & Region › First day of week

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.general.languageAndRegion.firstDayOfWeek = "Friday";

One of: "Friday""Monday""Saturday""Sunday""Thursday""Tuesday""Wednesday" "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain AppleFirstWeekday

For Friday:

/usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 6 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 6' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleFirstWeekday 2>/dev/null || true

For Monday:

/usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 2' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleFirstWeekday 2>/dev/null || true

For Saturday:

/usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 7 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 7' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleFirstWeekday 2>/dev/null || true

For Sunday:

/usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 1' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleFirstWeekday 2>/dev/null || true

For Thursday:

/usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 5 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 5' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleFirstWeekday 2>/dev/null || true

For Tuesday:

/usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 3 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 3' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleFirstWeekday 2>/dev/null || true

For Wednesday:

/usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 4 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleFirstWeekday -dict gregorian -int 4' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleFirstWeekday 2>/dev/null || true

For unset:

/usr/bin/defaults delete NSGlobalDomain AppleFirstWeekday 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleFirstWeekday 2>/dev/null || true

System Settings › General › Language & Region › Live Text

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.general.languageAndRegion.liveText = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain AppleLiveTextEnabled

For false:

/usr/bin/defaults write NSGlobalDomain AppleLiveTextEnabled -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleLiveTextEnabled -bool false' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleLiveTextEnabled 2>/dev/null || true

For true:

/usr/bin/defaults write NSGlobalDomain AppleLiveTextEnabled -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleLiveTextEnabled -bool true' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleLiveTextEnabled 2>/dev/null || true

For unset:

/usr/bin/defaults delete NSGlobalDomain AppleLiveTextEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleLiveTextEnabled 2>/dev/null || true

System Settings › General › Language & Region › Measurement system

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.general.languageAndRegion.measurementSystem = "Metric";

One of: "Metric""UK""US" "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain AppleMetricUnits
  • NSGlobalDomain AppleMeasurementUnits

For Metric:

/usr/bin/defaults write NSGlobalDomain AppleMetricUnits -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleMetricUnits -bool true' >&2
/usr/bin/defaults write NSGlobalDomain AppleMeasurementUnits -string Centimeters || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleMeasurementUnits -string Centimeters' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMetricUnits 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMeasurementUnits 2>/dev/null || true

For UK:

/usr/bin/defaults write NSGlobalDomain AppleMetricUnits -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleMetricUnits -bool true' >&2
/usr/bin/defaults write NSGlobalDomain AppleMeasurementUnits -string Inches || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleMeasurementUnits -string Inches' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMetricUnits 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMeasurementUnits 2>/dev/null || true

For US:

/usr/bin/defaults write NSGlobalDomain AppleMetricUnits -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleMetricUnits -bool false' >&2
/usr/bin/defaults write NSGlobalDomain AppleMeasurementUnits -string Inches || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleMeasurementUnits -string Inches' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMetricUnits 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMeasurementUnits 2>/dev/null || true

For unset:

/usr/bin/defaults delete NSGlobalDomain AppleMetricUnits 2>/dev/null || true
/usr/bin/defaults delete NSGlobalDomain AppleMeasurementUnits 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMetricUnits 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMeasurementUnits 2>/dev/null || true

System Settings › General › Language & Region › Number format

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.general.languageAndRegion.numberFormat = "1 234 567,89";

One of: "1 234 567,89""1 234 567.89""1,234,567.89""1.234.567,89" "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain AppleICUNumberSymbols

For 1 234 567,89:

/usr/bin/defaults write NSGlobalDomain AppleICUNumberSymbols -dict 0 -string , 1 -string ' ' 10 -string , 17 -string ' ' || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUNumberSymbols -dict 0 -string , 1 -string '\'' '\'' 10 -string , 17 -string '\'' '\''' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUNumberSymbols 2>/dev/null || true

For 1 234 567.89:

/usr/bin/defaults write NSGlobalDomain AppleICUNumberSymbols -dict 0 -string . 1 -string ' ' 10 -string . 17 -string ' ' || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUNumberSymbols -dict 0 -string . 1 -string '\'' '\'' 10 -string . 17 -string '\'' '\''' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUNumberSymbols 2>/dev/null || true

For 1,234,567.89:

/usr/bin/defaults write NSGlobalDomain AppleICUNumberSymbols -dict 0 -string . 1 -string , 10 -string . 17 -string , || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUNumberSymbols -dict 0 -string . 1 -string , 10 -string . 17 -string ,' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUNumberSymbols 2>/dev/null || true

For 1.234.567,89:

/usr/bin/defaults write NSGlobalDomain AppleICUNumberSymbols -dict 0 -string , 1 -string . 10 -string , 17 -string . || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleICUNumberSymbols -dict 0 -string , 1 -string . 10 -string , 17 -string .' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUNumberSymbols 2>/dev/null || true

For unset:

/usr/bin/defaults delete NSGlobalDomain AppleICUNumberSymbols 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleICUNumberSymbols 2>/dev/null || true

System Settings › General › Language & Region › Preferred Languages

home-manager · per user Not verified

Language tags in order of preference, the first being the primary language, e.g. [ "en-US" "nl-NL" ].

applications.systemSettings.general.languageAndRegion.preferredLanguages = [
"…"
];

A list of strings "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain AppleLanguages

For ["…"]:

/usr/bin/defaults write NSGlobalDomain AppleLanguages -array -string '…' || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleLanguages -array -string '\''…'\''' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleLanguages 2>/dev/null || true

For unset:

/usr/bin/defaults delete NSGlobalDomain AppleLanguages 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleLanguages 2>/dev/null || true

System Settings › General › Language & Region › Region

home-manager · per user Not verified

The locale: the primary language, the region, and optionally the calendar, e.g. "en_NL", "en_US@rg=nlzzzz" (US English with the formats of the Netherlands) or "en_NL@calendar=japanese".

applications.systemSettings.general.languageAndRegion.region = "…";

Text "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain AppleLocale

For unset:

/usr/bin/defaults delete NSGlobalDomain AppleLocale 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleLocale 2>/dev/null || true

For …:

/usr/bin/defaults write NSGlobalDomain AppleLocale -string '…' || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleLocale -string '\''…'\''' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleLocale 2>/dev/null || true

System Settings › General › Language & Region › Temperature

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.general.languageAndRegion.temperature = "Celsius (°C)";

One of: "Celsius (°C)""Fahrenheit (°F)" "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain AppleTemperatureUnit

For Celsius (°C):

/usr/bin/defaults write NSGlobalDomain AppleTemperatureUnit -string Celsius || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleTemperatureUnit -string Celsius' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleTemperatureUnit 2>/dev/null || true

For Fahrenheit (°F):

/usr/bin/defaults write NSGlobalDomain AppleTemperatureUnit -string Fahrenheit || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleTemperatureUnit -string Fahrenheit' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleTemperatureUnit 2>/dev/null || true

For unset:

/usr/bin/defaults delete NSGlobalDomain AppleTemperatureUnit 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleTemperatureUnit 2>/dev/null || true

System Settings › General › Sharing › Bluetooth Sharing

home-manager · per user ✓ Verified on macOS 27 Restarts sharingd
applications.systemSettings.general.sharing.bluetoothSharing.enable = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.Bluetooth PrefKeyServicesEnabled (current host)

For false:

/usr/bin/defaults -currentHost write com.apple.Bluetooth PrefKeyServicesEnabled -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth PrefKeyServicesEnabled -bool false' >&2
/usr/bin/killall sharingd 2>/dev/null || true

For true:

/usr/bin/defaults -currentHost write com.apple.Bluetooth PrefKeyServicesEnabled -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth PrefKeyServicesEnabled -bool true' >&2
/usr/bin/killall sharingd 2>/dev/null || true

For unset:

/usr/bin/defaults -currentHost delete com.apple.Bluetooth PrefKeyServicesEnabled 2>/dev/null || true
/usr/bin/killall sharingd 2>/dev/null || true

Bluetooth Sharing (i) › When other devices browse

Section titled “Bluetooth Sharing (i) › When other devices browse”

System Settings › General › Sharing › Bluetooth Sharing (i) › When other devices browse

home-manager · per user ✓ Verified on macOS 27 Restarts sharingd
applications.systemSettings.general.sharing.bluetoothSharing.whenOtherDevicesBrowse = "Accept and Save";

One of: "Accept and Save""Ask What to Do""Never Allow" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.Bluetooth OBEXBrowseConnectionHandling (current host)

For Accept and Save:

/usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXBrowseConnectionHandling -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXBrowseConnectionHandling -int 0' >&2
/usr/bin/killall sharingd 2>/dev/null || true

For Ask What to Do:

/usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXBrowseConnectionHandling -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXBrowseConnectionHandling -int 1' >&2
/usr/bin/killall sharingd 2>/dev/null || true

For Never Allow:

/usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXBrowseConnectionHandling -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXBrowseConnectionHandling -int 2' >&2
/usr/bin/killall sharingd 2>/dev/null || true

For unset:

/usr/bin/defaults -currentHost delete com.apple.Bluetooth OBEXBrowseConnectionHandling 2>/dev/null || true
/usr/bin/killall sharingd 2>/dev/null || true

Bluetooth Sharing (i) › When receiving items

Section titled “Bluetooth Sharing (i) › When receiving items”

System Settings › General › Sharing › Bluetooth Sharing (i) › When receiving items

home-manager · per user ✓ Verified on macOS 27 Restarts sharingd
applications.systemSettings.general.sharing.bluetoothSharing.whenReceivingItems = "Accept and Open";

One of: "Accept and Open""Accept and Save""Ask What to Do""Never Allow" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.Bluetooth OBEXFileHandling (current host)
  • com.apple.Bluetooth OBEXOtherDataDisposition (current host)

For Accept and Open:

/usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXFileHandling -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXFileHandling -int 0' >&2
/usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXOtherDataDisposition -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXOtherDataDisposition -int 1' >&2
/usr/bin/killall sharingd 2>/dev/null || true

For Accept and Save:

/usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXFileHandling -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXFileHandling -int 0' >&2
/usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXOtherDataDisposition -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXOtherDataDisposition -int 0' >&2
/usr/bin/killall sharingd 2>/dev/null || true

For Ask What to Do:

/usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXFileHandling -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXFileHandling -int 1' >&2
/usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXOtherDataDisposition -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXOtherDataDisposition -int 2' >&2
/usr/bin/killall sharingd 2>/dev/null || true

For Never Allow:

/usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXFileHandling -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write com.apple.Bluetooth OBEXFileHandling -int 2' >&2
/usr/bin/killall sharingd 2>/dev/null || true

For unset:

/usr/bin/defaults -currentHost delete com.apple.Bluetooth OBEXFileHandling 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.Bluetooth OBEXOtherDataDisposition 2>/dev/null || true
/usr/bin/killall sharingd 2>/dev/null || true

System Settings › General › Sharing › Content Caching

nix-darwin · system-wide Not verified Restarts AssetCache
applications.systemSettings.general.sharing.contentCaching = true;

true or false

Where it's stored and what runs
  • /Library/Preferences/com.apple.AssetCache Activated

For false:

/usr/bin/AssetCacheManagerUtil deactivate >/dev/null 2>&1 || true; /usr/bin/killall AssetCache 2>/dev/null || true

For true:

/usr/bin/AssetCacheManagerUtil activate >/dev/null 2>&1 || true; /usr/bin/killall AssetCache 2>/dev/null || true

System Settings › General › Sharing › Content Caching (i) › Cache

nix-darwin · system-wide Not verified
applications.systemSettings.general.sharing.contentCachingOptions.cacheContent = "All Content";

One of: "All Content""Only Shared Content""Only iCloud Content" "unset" puts back macOS's default.

Where it's stored and what runs
  • /Library/Preferences/com.apple.AssetCache AllowPersonalCaching
  • /Library/Preferences/com.apple.AssetCache AllowSharedCaching

For All Content:

/usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowPersonalCaching -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowPersonalCaching -bool true' >&2
/usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowSharedCaching -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowSharedCaching -bool true' >&2
/usr/bin/AssetCacheManagerUtil reloadSettings >/dev/null 2>&1 || true

For Only Shared Content:

/usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowPersonalCaching -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowPersonalCaching -bool false' >&2
/usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowSharedCaching -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowSharedCaching -bool true' >&2
/usr/bin/AssetCacheManagerUtil reloadSettings >/dev/null 2>&1 || true

For Only iCloud Content:

/usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowPersonalCaching -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowPersonalCaching -bool true' >&2
/usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowSharedCaching -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowSharedCaching -bool false' >&2
/usr/bin/AssetCacheManagerUtil reloadSettings >/dev/null 2>&1 || true

For unset:

/usr/bin/defaults delete /Library/Preferences/com.apple.AssetCache AllowPersonalCaching 2>/dev/null || true
/usr/bin/defaults delete /Library/Preferences/com.apple.AssetCache AllowSharedCaching 2>/dev/null || true
/usr/bin/AssetCacheManagerUtil reloadSettings >/dev/null 2>&1 || true

Content Caching (i) › Internet Connection

Section titled “Content Caching (i) › Internet Connection”

System Settings › General › Sharing › Content Caching (i) › Internet Connection

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.sharing.contentCachingOptions.shareInternetConnection = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • /Library/Preferences/com.apple.AssetCache AllowTetheredCaching

For false:

/usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowTetheredCaching -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowTetheredCaching -bool false' >&2
/usr/bin/AssetCacheManagerUtil reloadSettings >/dev/null 2>&1 || true

For true:

/usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowTetheredCaching -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.AssetCache AllowTetheredCaching -bool true' >&2
/usr/bin/AssetCacheManagerUtil reloadSettings >/dev/null 2>&1 || true

For unset:

/usr/bin/defaults delete /Library/Preferences/com.apple.AssetCache AllowTetheredCaching 2>/dev/null || true
/usr/bin/AssetCacheManagerUtil reloadSettings >/dev/null 2>&1 || true

System Settings › General › Sharing › File Sharing

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.sharing.fileSharing = true;

true or false

Where it's stored and what runs

For false:

/bin/launchctl bootout system/com.apple.smbd 2>/dev/null || true
/bin/launchctl disable system/com.apple.smbd

For true:

/bin/launchctl enable system/com.apple.smbd
/bin/launchctl bootstrap system /System/Library/LaunchDaemons/com.apple.smbd.plist 2>/dev/null || true

System Settings › General › Sharing › File Sharing (i) › Shared Folders

nix-darwin · system-wide Not verified

Folders to share, by path, with the name they're shared under, e.g. { "/Users/me/Public" = "Me’s Public Folder"; }. Folders shared now but not listed stop being shared.

applications.systemSettings.general.sharing.fileSharingOptions.sharedFolders = {
"/Users/me/Public" = "Public";
};

Folders to share: path → name

Where it's stored and what runs

For { /Users/me/Public = "Public"; }:

/usr/sbin/sharing -l | /usr/bin/sed -n 's/^path:[[:space:]]*//p' | while IFS= read -r path; do case "$path" in /Users/me/Public) ;; *) /usr/sbin/sharing -r "$(/usr/sbin/sharing -l | /usr/bin/awk -v p="$path" '/^name:/{sub(/^name:[[:space:]]*/,"");n=$0} /^path:/{sub(/^path:[[:space:]]*/,""); if($0==p) print n}')" ;; esac; done
/usr/sbin/sharing -l | /usr/bin/grep -qxF 'path: /Users/me/Public' || /usr/sbin/sharing -a /Users/me/Public -S Public -n Public

Media Sharing (i) › Share media with guests

Section titled “Media Sharing (i) › Share media with guests”

System Settings › General › Sharing › Media Sharing (i) › Share media with guests

home-manager · per user Not verified Restarts mediasharingd
applications.systemSettings.general.sharing.mediaSharing.shareMediaWithGuests = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.amp.mediasharingd public-sharing-enabled

For false:

/usr/bin/defaults write com.apple.amp.mediasharingd public-sharing-enabled -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.amp.mediasharingd public-sharing-enabled -int 0' >&2
/usr/bin/defaults -currentHost delete com.apple.amp.mediasharingd public-sharing-enabled 2>/dev/null || true
/usr/bin/killall mediasharingd 2>/dev/null || true

For true:

/usr/bin/defaults write com.apple.amp.mediasharingd public-sharing-enabled -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.amp.mediasharingd public-sharing-enabled -int 1' >&2
/usr/bin/defaults -currentHost delete com.apple.amp.mediasharingd public-sharing-enabled 2>/dev/null || true
/usr/bin/killall mediasharingd 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.amp.mediasharingd public-sharing-enabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.amp.mediasharingd public-sharing-enabled 2>/dev/null || true
/usr/bin/killall mediasharingd 2>/dev/null || true

System Settings › General › Sharing › Printer Sharing

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.sharing.printerSharing = true;

true or false

Where it's stored and what runs

For false:

/usr/sbin/cupsctl --no-share-printers

For true:

/usr/sbin/cupsctl --share-printers

System Settings › General › Sharing › Remote Application Scripting

nix-darwin · system-wide Not verified
applications.systemSettings.general.sharing.remoteApplicationScripting = true;

true or false

Where it's stored and what runs

For false:

/bin/launchctl bootout system/com.apple.AEServer 2>/dev/null || true
/bin/launchctl disable system/com.apple.AEServer

For true:

/bin/launchctl enable system/com.apple.AEServer
/bin/launchctl bootstrap system /System/Library/LaunchDaemons/com.apple.AEServer.plist 2>/dev/null || true

Remote Application Scripting (i) › Allow access for

Section titled “Remote Application Scripting (i) › Allow access for”

System Settings › General › Sharing › Remote Application Scripting (i) › Allow access for

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.sharing.remoteApplicationScriptingOptions.allowAccessFor = "All users";

One of: "All users""Only these users"

Where it's stored and what runs

For All users:

/usr/sbin/dseditgroup -o delete com.apple.access_remote_ae >/dev/null 2>&1 || true

For Only these users:

/usr/sbin/dseditgroup -o read com.apple.access_remote_ae >/dev/null 2>&1 || { /usr/sbin/dseditgroup -o create -i 400 -r 'Remote Application Scripting' com.apple.access_remote_ae && /usr/sbin/dseditgroup -o edit -a admin -t group com.apple.access_remote_ae; }

System Settings › General › Sharing › Remote Management

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.sharing.remoteManagement = true;

true or false

Where it's stored and what runs
  • /Library/Preferences/com.apple.RemoteManagement allowInsecureDH

For false:

/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -configure -access -off >/dev/null

For true:

/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -privs -all -allowAccessFor -allUsers -restart -agent >/dev/null

Remote Management (i) › Allow access for

Section titled “Remote Management (i) › Allow access for”

System Settings › General › Sharing › Remote Management (i) › Allow access for

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.sharing.remoteManagementOptions.allowAccessFor = "All users";

One of: "All users""Only these users" "unset" puts back macOS's default.

Where it's stored and what runs
  • /Library/Preferences/com.apple.RemoteManagement ARD_AllLocalUsers

For All users:

/usr/bin/defaults write /Library/Preferences/com.apple.RemoteManagement ARD_AllLocalUsers -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.RemoteManagement ARD_AllLocalUsers -bool true' >&2

For Only these users:

/usr/bin/defaults write /Library/Preferences/com.apple.RemoteManagement ARD_AllLocalUsers -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.RemoteManagement ARD_AllLocalUsers -bool false' >&2

For unset:

/usr/bin/defaults delete /Library/Preferences/com.apple.RemoteManagement ARD_AllLocalUsers 2>/dev/null || true

System Settings › General › Sharing › Screen Sharing

nix-darwin · system-wide Not verified
applications.systemSettings.general.sharing.screenSharing = true;

true or false

Where it's stored and what runs

For false:

/bin/launchctl bootout system/com.apple.screensharing 2>/dev/null || true
/bin/launchctl disable system/com.apple.screensharing

For true:

/bin/launchctl enable system/com.apple.screensharing
/bin/launchctl bootstrap system /System/Library/LaunchDaemons/com.apple.screensharing.plist 2>/dev/null || true

System Settings › General › Sharing › Screen Sharing (i) › Allow access for

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.sharing.screenSharingOptions.allowAccessFor = "All users";

One of: "All users""Only these users"

Where it's stored and what runs

For All users:

/usr/sbin/dseditgroup -o delete com.apple.access_screensharing >/dev/null 2>&1 || true

For Only these users:

/usr/sbin/dseditgroup -o read com.apple.access_screensharing >/dev/null 2>&1 || { /usr/sbin/dseditgroup -o create -i 398 -r 'Screen Sharing' com.apple.access_screensharing && /usr/sbin/dseditgroup -o edit -a admin -t group com.apple.access_screensharing; }

Automatic Updates (i) › Download new updates when available

Section titled “Automatic Updates (i) › Download new updates when available”

System Settings › General › Software Update › Automatic Updates (i) › Download new updates when available

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.softwareUpdate.automaticallyDownloadNewUpdatesWhenAvailable = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload

For false:

/usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -bool false' >&2

For true:

/usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -bool true' >&2

For unset:

/usr/bin/defaults delete /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload 2>/dev/null || true

Automatic Updates (i) › Install macOS updates

Section titled “Automatic Updates (i) › Install macOS updates”

System Settings › General › Software Update › Automatic Updates (i) › Install macOS updates

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.softwareUpdate.automaticallyInstallMacOSUpdates = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates

For false:

/usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates -bool false' >&2

For true:

/usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates -bool true' >&2

For unset:

/usr/bin/defaults delete /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates 2>/dev/null || true

Automatic Updates (i) › Install system data files and security updates

Section titled “Automatic Updates (i) › Install system data files and security updates”

System Settings › General › Software Update › Automatic Updates (i) › Install system data files and security updates

nix-darwin · system-wide ✓ Verified on macOS 27
applications.systemSettings.general.softwareUpdate.automaticallyInstallSystemDataFilesAndSecurityUpdates = true;

true or false "unset" puts back macOS's default.

Where it's stored and what runs
  • /Library/Preferences/com.apple.SoftwareUpdate ConfigDataInstall
  • /Library/Preferences/com.apple.SoftwareUpdate CriticalUpdateInstall

For false:

/usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate ConfigDataInstall -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate ConfigDataInstall -bool false' >&2
/usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate CriticalUpdateInstall -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate CriticalUpdateInstall -bool false' >&2

For true:

/usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate ConfigDataInstall -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate ConfigDataInstall -bool true' >&2
/usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate CriticalUpdateInstall -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write /Library/Preferences/com.apple.SoftwareUpdate CriticalUpdateInstall -bool true' >&2

For unset:

/usr/bin/defaults delete /Library/Preferences/com.apple.SoftwareUpdate ConfigDataInstall 2>/dev/null || true
/usr/bin/defaults delete /Library/Preferences/com.apple.SoftwareUpdate CriticalUpdateInstall 2>/dev/null || true

What this pane shows that can’t be declared, and why:

14 settings
  • About › General Section › Name — use nix-darwin’s networking.computerName
  • AirDrop & Continuity › Allow AirPlay for — kept by the AirPlay receiver outside readable preferences; changing it writes no preference file
  • Login Items › Extension Items › Actions — app extensions are enabled per installed app (pluginkit), not a preference
  • Login Items › Extension Items › Extensions — app extensions are enabled per installed app (pluginkit), not a preference
  • Login Items › Extension Items › Finder — app extensions are enabled per installed app (pluginkit), not a preference
  • Login Items › Extension Items › Password AutoFill Extensions — app extensions are enabled per installed app (pluginkit), not a preference
  • Login Items › Extension Items › Share menu items — app extensions are enabled per installed app (pluginkit), not a preference
  • Login Items › Extension Items › Touch Bar — app extensions are enabled per installed app (pluginkit), not a preference
  • Login Items › Startup Items Pref › App Background Activity — allowed per app by backgroundtaskmanagementd, not a preference
  • Login Items › Startup Items Pref › Open at Login — login items are launchd agents; declare them with nix-darwin or home-manager launchd options
  • Sharing › Hostname — use nix-darwin’s networking.hostName and networking.localHostName
  • Sharing › Internet › Internet sharing — needs a source and target interfaces configured first; switching it on can take down networking, so it isn’t automated
  • Sharing › Remote login — use nix-darwin’s services.openssh.enable
  • Sharing › Windows file sharing — stores the account password for SMB; a password doesn’t belong in a Nix configuration