Skip to content

Menu Bar

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

31 options 28 verified against System Settings

System Settings › Menu Bar › Automatically hide and show the menu bar

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.menuBar.autoHideAndShowTheMenuBar = "Always";

One of: "Always""In Full Screen Only""Never""On Desktop Only" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.controlcenter AutoHideMenuBarOption
  • NSGlobalDomain _HIHideMenuBar
  • NSGlobalDomain AppleMenuBarVisibleInFullscreen

For Always:

/usr/bin/defaults write com.apple.controlcenter AutoHideMenuBarOption -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.controlcenter AutoHideMenuBarOption -int 0' >&2
/usr/bin/defaults write NSGlobalDomain _HIHideMenuBar -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain _HIHideMenuBar -bool true' >&2
/usr/bin/defaults write NSGlobalDomain AppleMenuBarVisibleInFullscreen -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleMenuBarVisibleInFullscreen -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.controlcenter AutoHideMenuBarOption 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain _HIHideMenuBar 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMenuBarVisibleInFullscreen 2>/dev/null || true

For In Full Screen Only:

/usr/bin/defaults write com.apple.controlcenter AutoHideMenuBarOption -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.controlcenter AutoHideMenuBarOption -int 2' >&2
/usr/bin/defaults write NSGlobalDomain _HIHideMenuBar -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain _HIHideMenuBar -bool false' >&2
/usr/bin/defaults write NSGlobalDomain AppleMenuBarVisibleInFullscreen -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleMenuBarVisibleInFullscreen -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.controlcenter AutoHideMenuBarOption 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain _HIHideMenuBar 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMenuBarVisibleInFullscreen 2>/dev/null || true

For Never:

/usr/bin/defaults write com.apple.controlcenter AutoHideMenuBarOption -int 3 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.controlcenter AutoHideMenuBarOption -int 3' >&2
/usr/bin/defaults write NSGlobalDomain _HIHideMenuBar -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain _HIHideMenuBar -bool false' >&2
/usr/bin/defaults write NSGlobalDomain AppleMenuBarVisibleInFullscreen -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleMenuBarVisibleInFullscreen -bool true' >&2
/usr/bin/defaults -currentHost delete com.apple.controlcenter AutoHideMenuBarOption 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain _HIHideMenuBar 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMenuBarVisibleInFullscreen 2>/dev/null || true

For On Desktop Only:

/usr/bin/defaults write com.apple.controlcenter AutoHideMenuBarOption -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.controlcenter AutoHideMenuBarOption -int 1' >&2
/usr/bin/defaults write NSGlobalDomain _HIHideMenuBar -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain _HIHideMenuBar -bool true' >&2
/usr/bin/defaults write NSGlobalDomain AppleMenuBarVisibleInFullscreen -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleMenuBarVisibleInFullscreen -bool true' >&2
/usr/bin/defaults -currentHost delete com.apple.controlcenter AutoHideMenuBarOption 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain _HIHideMenuBar 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMenuBarVisibleInFullscreen 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.controlcenter AutoHideMenuBarOption 2>/dev/null || true
/usr/bin/defaults delete NSGlobalDomain _HIHideMenuBar 2>/dev/null || true
/usr/bin/defaults delete NSGlobalDomain AppleMenuBarVisibleInFullscreen 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.controlcenter AutoHideMenuBarOption 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain _HIHideMenuBar 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain AppleMenuBarVisibleInFullscreen 2>/dev/null || true

Menu bar

home-manager · per user Not verified Restarts ControlCenter

Which apps' items show in the menu bar (verified), the order of menu bar items and whether Siri and Spotlight show (not verified yet), as arranged by hand. Save them into your configuration with nix run github:sushydev/nix-plist-manager#capture -- applications.systemSettings.menuBar.layout <directory> and set this option to that directory. Control Center's own contents can't be declared.

applications.systemSettings.menuBar.layout = "/path/to/snapshot";

A directory captured with nix run …#capture — see Snapshots "unset" puts back macOS's default.

Where it's stored and what runs
  • ~/Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter trackedApplications
  • ~/Library/Group Containers/com.apple.MenuBar/Library/Preferences/com.apple.MenuBar TrailingItemPreferredPositions
  • ~/Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter showSiri
  • ~/Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter showSpotlight

For /path/to/snapshot:

/usr/bin/defaults delete "$HOME"/'Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter' trackedApplications 2>/dev/null || true
/usr/bin/defaults import "$HOME"/'Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter' /path/to/snapshot/applications.plist || echo 'nix-plist-manager: failed: /usr/bin/defaults import "$HOME"/'\''Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter'\'' /path/to/snapshot/applications.plist' >&2
/usr/bin/defaults delete "$HOME"/'Library/Group Containers/com.apple.MenuBar/Library/Preferences/com.apple.MenuBar' TrailingItemPreferredPositions 2>/dev/null || true
/usr/bin/defaults import "$HOME"/'Library/Group Containers/com.apple.MenuBar/Library/Preferences/com.apple.MenuBar' /path/to/snapshot/positions.plist || echo 'nix-plist-manager: failed: /usr/bin/defaults import "$HOME"/'\''Library/Group Containers/com.apple.MenuBar/Library/Preferences/com.apple.MenuBar'\'' /path/to/snapshot/positions.plist' >&2
/usr/bin/defaults delete "$HOME"/'Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter' showSiri 2>/dev/null || true
/usr/bin/defaults import "$HOME"/'Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter' /path/to/snapshot/showSiri.plist || echo 'nix-plist-manager: failed: /usr/bin/defaults import "$HOME"/'\''Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter'\'' /path/to/snapshot/showSiri.plist' >&2
/usr/bin/defaults delete "$HOME"/'Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter' showSpotlight 2>/dev/null || true
/usr/bin/defaults import "$HOME"/'Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter' /path/to/snapshot/showSpotlight.plist || echo 'nix-plist-manager: failed: /usr/bin/defaults import "$HOME"/'\''Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter'\'' /path/to/snapshot/showSpotlight.plist' >&2
/usr/bin/killall ControlCenter 2>/dev/null || true

For unset:

/usr/bin/defaults delete "$HOME"/'Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter' trackedApplications 2>/dev/null || true
/usr/bin/defaults delete "$HOME"/'Library/Group Containers/com.apple.MenuBar/Library/Preferences/com.apple.MenuBar' TrailingItemPreferredPositions 2>/dev/null || true
/usr/bin/defaults delete "$HOME"/'Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter' showSiri 2>/dev/null || true
/usr/bin/defaults delete "$HOME"/'Library/Group Containers/group.com.apple.controlcenter/Library/Preferences/group.com.apple.controlcenter' showSpotlight 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

Recent documents, applications, and servers

Section titled “Recent documents, applications, and servers”

System Settings › Menu Bar › Recent documents, applications, and servers

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.menuBar.recentDocumentsApplicationsAndServers = "10";

One of: "10""15""20""30""5""50""None" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.controlcenter NumberOfRecents

For 5:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''CoreServices'\'');ObjC.bindFunction('\''LSSharedFileListCreate'\'', ['\''id'\'', ['\''void *'\'', '\''id'\'', '\''void *'\'']]);ObjC.bindFunction('\''LSSharedFileListSetProperty'\'', ['\''int'\'', ['\''id'\'', '\''id'\'', '\''id'\'']]);['\''RecentApplications'\'', '\''RecentDocuments'\'', '\''RecentServers'\''].forEach(function (name) { var list = $.LSSharedFileListCreate(null, $('\''com.apple.LSSharedFileList.'\'' + name), null); $.LSSharedFileListSetProperty(list, $('\''com.apple.LSSharedFileList.MaxAmount'\''), $(5));});' >/dev/null
/usr/bin/defaults write com.apple.controlcenter NumberOfRecents -int 5
/usr/bin/defaults -currentHost delete com.apple.controlcenter NumberOfRecents 2>/dev/null || true

For 10:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''CoreServices'\'');ObjC.bindFunction('\''LSSharedFileListCreate'\'', ['\''id'\'', ['\''void *'\'', '\''id'\'', '\''void *'\'']]);ObjC.bindFunction('\''LSSharedFileListSetProperty'\'', ['\''int'\'', ['\''id'\'', '\''id'\'', '\''id'\'']]);['\''RecentApplications'\'', '\''RecentDocuments'\'', '\''RecentServers'\''].forEach(function (name) { var list = $.LSSharedFileListCreate(null, $('\''com.apple.LSSharedFileList.'\'' + name), null); $.LSSharedFileListSetProperty(list, $('\''com.apple.LSSharedFileList.MaxAmount'\''), $(10));});' >/dev/null
/usr/bin/defaults write com.apple.controlcenter NumberOfRecents -int 10
/usr/bin/defaults -currentHost delete com.apple.controlcenter NumberOfRecents 2>/dev/null || true

For 15:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''CoreServices'\'');ObjC.bindFunction('\''LSSharedFileListCreate'\'', ['\''id'\'', ['\''void *'\'', '\''id'\'', '\''void *'\'']]);ObjC.bindFunction('\''LSSharedFileListSetProperty'\'', ['\''int'\'', ['\''id'\'', '\''id'\'', '\''id'\'']]);['\''RecentApplications'\'', '\''RecentDocuments'\'', '\''RecentServers'\''].forEach(function (name) { var list = $.LSSharedFileListCreate(null, $('\''com.apple.LSSharedFileList.'\'' + name), null); $.LSSharedFileListSetProperty(list, $('\''com.apple.LSSharedFileList.MaxAmount'\''), $(15));});' >/dev/null
/usr/bin/defaults write com.apple.controlcenter NumberOfRecents -int 15
/usr/bin/defaults -currentHost delete com.apple.controlcenter NumberOfRecents 2>/dev/null || true

For 20:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''CoreServices'\'');ObjC.bindFunction('\''LSSharedFileListCreate'\'', ['\''id'\'', ['\''void *'\'', '\''id'\'', '\''void *'\'']]);ObjC.bindFunction('\''LSSharedFileListSetProperty'\'', ['\''int'\'', ['\''id'\'', '\''id'\'', '\''id'\'']]);['\''RecentApplications'\'', '\''RecentDocuments'\'', '\''RecentServers'\''].forEach(function (name) { var list = $.LSSharedFileListCreate(null, $('\''com.apple.LSSharedFileList.'\'' + name), null); $.LSSharedFileListSetProperty(list, $('\''com.apple.LSSharedFileList.MaxAmount'\''), $(20));});' >/dev/null
/usr/bin/defaults write com.apple.controlcenter NumberOfRecents -int 20
/usr/bin/defaults -currentHost delete com.apple.controlcenter NumberOfRecents 2>/dev/null || true

For 30:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''CoreServices'\'');ObjC.bindFunction('\''LSSharedFileListCreate'\'', ['\''id'\'', ['\''void *'\'', '\''id'\'', '\''void *'\'']]);ObjC.bindFunction('\''LSSharedFileListSetProperty'\'', ['\''int'\'', ['\''id'\'', '\''id'\'', '\''id'\'']]);['\''RecentApplications'\'', '\''RecentDocuments'\'', '\''RecentServers'\''].forEach(function (name) { var list = $.LSSharedFileListCreate(null, $('\''com.apple.LSSharedFileList.'\'' + name), null); $.LSSharedFileListSetProperty(list, $('\''com.apple.LSSharedFileList.MaxAmount'\''), $(30));});' >/dev/null
/usr/bin/defaults write com.apple.controlcenter NumberOfRecents -int 30
/usr/bin/defaults -currentHost delete com.apple.controlcenter NumberOfRecents 2>/dev/null || true

For 50:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''CoreServices'\'');ObjC.bindFunction('\''LSSharedFileListCreate'\'', ['\''id'\'', ['\''void *'\'', '\''id'\'', '\''void *'\'']]);ObjC.bindFunction('\''LSSharedFileListSetProperty'\'', ['\''int'\'', ['\''id'\'', '\''id'\'', '\''id'\'']]);['\''RecentApplications'\'', '\''RecentDocuments'\'', '\''RecentServers'\''].forEach(function (name) { var list = $.LSSharedFileListCreate(null, $('\''com.apple.LSSharedFileList.'\'' + name), null); $.LSSharedFileListSetProperty(list, $('\''com.apple.LSSharedFileList.MaxAmount'\''), $(50));});' >/dev/null
/usr/bin/defaults write com.apple.controlcenter NumberOfRecents -int 50
/usr/bin/defaults -currentHost delete com.apple.controlcenter NumberOfRecents 2>/dev/null || true

For None:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''CoreServices'\'');ObjC.bindFunction('\''LSSharedFileListCreate'\'', ['\''id'\'', ['\''void *'\'', '\''id'\'', '\''void *'\'']]);ObjC.bindFunction('\''LSSharedFileListSetProperty'\'', ['\''int'\'', ['\''id'\'', '\''id'\'', '\''id'\'']]);['\''RecentApplications'\'', '\''RecentDocuments'\'', '\''RecentServers'\''].forEach(function (name) { var list = $.LSSharedFileListCreate(null, $('\''com.apple.LSSharedFileList.'\'' + name), null); $.LSSharedFileListSetProperty(list, $('\''com.apple.LSSharedFileList.MaxAmount'\''), $(0));});' >/dev/null
/usr/bin/defaults write com.apple.controlcenter NumberOfRecents -int 0
/usr/bin/defaults -currentHost delete com.apple.controlcenter NumberOfRecents 2>/dev/null || true

For unset:

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

System Settings › Menu Bar › Show menu bar background

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.menuBar.showMenuBarBackground = true;

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

Where it's stored and what runs
  • NSGlobalDomain SLSMenuBarUseBlurredAppearance

For false:

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

For true:

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

For unset:

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

System Settings › Menu Bar › Show suggestions in Control Gallery

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.showSuggestionsInControlGallery = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › AirDrop

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.airdrop = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Battery

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.battery = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Battery Options… › Show Energy Mode

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.batteryOptions.showEnergyMode = "Always";

One of: "Always""When Active" "unset" puts back macOS's default.

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

For Always:

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

For When Active:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Battery Options… › Show Percentage

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.batteryOptions.showPercentage = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Bluetooth

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.bluetooth = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Display

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.display = "Always Show";

One of: "Always Show""Don't Show""Show When Active" "unset" puts back macOS's default.

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

For Always Show:

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

For Don't Show:

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

For Show When Active:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Fast User Switching

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.fastUserSwitching = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Fast User Switching › Show in Menu Bar

home-manager · per user Not verified Restarts ControlCenter
applications.systemSettings.menuBar.fastUserSwitchingShowAs = "Account Name";

One of: "Account Name""Full Name""Icon" "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain userMenuExtraStyle

For Account Name:

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

For Full Name:

/usr/bin/defaults write NSGlobalDomain userMenuExtraStyle -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain userMenuExtraStyle -int 0' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain userMenuExtraStyle 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

For Icon:

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

For unset:

/usr/bin/defaults delete NSGlobalDomain userMenuExtraStyle 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain userMenuExtraStyle 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

System Settings › Menu Bar › Menu Bar Controls › Focus

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.focusModes = "Always Show";

One of: "Always Show""Don't Show""Show When Active" "unset" puts back macOS's default.

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

For Always Show:

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

For Don't Show:

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

For Show When Active:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Keyboard Brightness

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.keyboardBrightness = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Now Playing

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.nowPlaying = "Always Show";

One of: "Always Show""Don't Show""Show When Active" "unset" puts back macOS's default.

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

For Always Show:

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

For Don't Show:

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

For Show When Active:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Screen Mirroring

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.screenMirroring = "Always Show";

One of: "Always Show""Don't Show""Show When Active" "unset" puts back macOS's default.

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

For Always Show:

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

For Don't Show:

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

For Show When Active:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Siri

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.siri = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Sound

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.sound = "Always Show";

One of: "Always Show""Don't Show""Show When Active" "unset" puts back macOS's default.

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

For Always Show:

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

For Don't Show:

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

For Show When Active:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Text Input

home-manager · per user ✓ Verified on macOS 27 Restarts TextInputMenuAgent
applications.systemSettings.menuBar.textInput = true;

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

Where it's stored and what runs
  • com.apple.TextInputMenu visible

For false:

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

For true:

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

For unset:

/usr/bin/defaults delete com.apple.TextInputMenu visible 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.TextInputMenu visible 2>/dev/null || true
/usr/bin/killall TextInputMenuAgent 2>/dev/null || true

System Settings › Menu Bar › Menu Bar Controls › Time Machine

home-manager · per user ✓ Verified on macOS 27 Restarts SystemUIServer
applications.systemSettings.menuBar.timeMachine = true;

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

Where it's stored and what runs
  • com.apple.systemuiserver menuExtras

For false:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''Foundation'\'');var d = $.NSUserDefaults.alloc.initWithSuiteName("com.apple.systemuiserver");var items = ObjC.deepUnwrap(d.arrayForKey("menuExtras")) || [];var members = {"/System/Library/CoreServices/Menu Extras/TimeMachine.menu":false};Object.keys(members).forEach(function (item) { var at = items.indexOf(item); if (members[item] && at < 0) items.push(item); if (!members[item] && at >= 0) items.splice(at, 1);});d.setObjectForKey($(items), "menuExtras");d.synchronize;' >/dev/null || echo 'nix-plist-manager: failed: /usr/bin/osascript -l JavaScript -e '\''ObjC.import('\''\'\'''\''Foundation'\''\'\'''\'');var d = $.NSUserDefaults.alloc.initWithSuiteName("com.apple.systemuiserver");var items = ObjC.deepUnwrap(d.arrayForKey("menuExtras")) || [];var members = {"/System/Library/CoreServices/Menu Extras/TimeMachine.menu":false};Object.keys(members).forEach(function (item) { var at = items.indexOf(item); if (members[item] && at < 0) items.push(item); if (!members[item] && at >= 0) items.splice(at, 1);});d.setObjectForKey($(items), "menuExtras");d.synchronize;'\'' >/dev/null' >&2
/usr/bin/defaults -currentHost delete com.apple.systemuiserver menuExtras 2>/dev/null || true
/usr/bin/killall SystemUIServer 2>/dev/null || true

For true:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''Foundation'\'');var d = $.NSUserDefaults.alloc.initWithSuiteName("com.apple.systemuiserver");var items = ObjC.deepUnwrap(d.arrayForKey("menuExtras")) || [];var members = {"/System/Library/CoreServices/Menu Extras/TimeMachine.menu":true};Object.keys(members).forEach(function (item) { var at = items.indexOf(item); if (members[item] && at < 0) items.push(item); if (!members[item] && at >= 0) items.splice(at, 1);});d.setObjectForKey($(items), "menuExtras");d.synchronize;' >/dev/null || echo 'nix-plist-manager: failed: /usr/bin/osascript -l JavaScript -e '\''ObjC.import('\''\'\'''\''Foundation'\''\'\'''\'');var d = $.NSUserDefaults.alloc.initWithSuiteName("com.apple.systemuiserver");var items = ObjC.deepUnwrap(d.arrayForKey("menuExtras")) || [];var members = {"/System/Library/CoreServices/Menu Extras/TimeMachine.menu":true};Object.keys(members).forEach(function (item) { var at = items.indexOf(item); if (members[item] && at < 0) items.push(item); if (!members[item] && at >= 0) items.splice(at, 1);});d.setObjectForKey($(items), "menuExtras");d.synchronize;'\'' >/dev/null' >&2
/usr/bin/defaults -currentHost delete com.apple.systemuiserver menuExtras 2>/dev/null || true
/usr/bin/killall SystemUIServer 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.systemuiserver menuExtras 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.systemuiserver menuExtras 2>/dev/null || true
/usr/bin/killall SystemUIServer 2>/dev/null || true

System Settings › Menu Bar › Menu Bar Controls › Timer

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.timer = "Always Show";

One of: "Always Show""Don't Show""Show When Active" "unset" puts back macOS's default.

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

For Always Show:

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

For Don't Show:

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

For Show When Active:

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

For unset:

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

System Settings › Menu Bar › Menu Bar Controls › Wi‑Fi

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.wifi = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Menu Bar › Clock Options… › Announce the time

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.menuBar.clock.announceTheTime.enable = true;

true or false

Where it's stored and what runs
  • com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs

For false:

/usr/bin/defaults write com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict-add TimeAnnouncementsEnabled -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict-add TimeAnnouncementsEnabled -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs 2>/dev/null || true

For true:

/usr/bin/defaults write com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict-add TimeAnnouncementsEnabled -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict-add TimeAnnouncementsEnabled -bool true' >&2
/usr/bin/defaults -currentHost delete com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs 2>/dev/null || true

System Settings › Menu Bar › Clock Options… › Interval

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.menuBar.clock.announceTheTime.interval = "On the half hour";

One of: "On the half hour""On the hour""On the quarter hour"

Where it's stored and what runs
  • com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs

For On the half hour:

/usr/bin/defaults write com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict-add TimeAnnouncementsIntervalIdentifier -string EveryHalfHourInterval || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict-add TimeAnnouncementsIntervalIdentifier -string EveryHalfHourInterval' >&2
/usr/bin/defaults -currentHost delete com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs 2>/dev/null || true

For On the hour:

/usr/bin/defaults write com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict-add TimeAnnouncementsIntervalIdentifier -string EveryHourInterval || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict-add TimeAnnouncementsIntervalIdentifier -string EveryHourInterval' >&2
/usr/bin/defaults -currentHost delete com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs 2>/dev/null || true

For On the quarter hour:

/usr/bin/defaults write com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict-add TimeAnnouncementsIntervalIdentifier -string EveryQuarterHourInterval || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict-add TimeAnnouncementsIntervalIdentifier -string EveryQuarterHourInterval' >&2
/usr/bin/defaults -currentHost delete com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs 2>/dev/null || true

System Settings › Menu Bar › Clock Options… › Display the time with seconds

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.clock.displayTheTimeWithSeconds = true;

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

Where it's stored and what runs
  • com.apple.menuextra.clock ShowSeconds

For false:

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

For true:

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

For unset:

/usr/bin/defaults delete com.apple.menuextra.clock ShowSeconds 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.menuextra.clock ShowSeconds 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

System Settings › Menu Bar › Clock Options… › Flash the time separators

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.clock.flashTheTimeSeparators = true;

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

Where it's stored and what runs
  • com.apple.menuextra.clock FlashDateSeparators

For false:

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

For true:

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

For unset:

/usr/bin/defaults delete com.apple.menuextra.clock FlashDateSeparators 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.menuextra.clock FlashDateSeparators 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

System Settings › Menu Bar › Clock Options… › Show AM/PM

home-manager · per user Not verified Restarts ControlCenter
applications.systemSettings.menuBar.clock.showAmPm = true;

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

Where it's stored and what runs
  • com.apple.menuextra.clock ShowAMPM

For false:

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

For true:

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

For unset:

/usr/bin/defaults delete com.apple.menuextra.clock ShowAMPM 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.menuextra.clock ShowAMPM 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

System Settings › Menu Bar › Clock Options… › Show date

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.clock.showDate = true;

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

Where it's stored and what runs
  • com.apple.menuextra.clock ShowDate

For false:

/usr/bin/defaults write com.apple.menuextra.clock ShowDate -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.menuextra.clock ShowDate -int 2' >&2
/usr/bin/defaults -currentHost delete com.apple.menuextra.clock ShowDate 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

For true:

/usr/bin/defaults write com.apple.menuextra.clock ShowDate -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.menuextra.clock ShowDate -int 1' >&2
/usr/bin/defaults -currentHost delete com.apple.menuextra.clock ShowDate 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.menuextra.clock ShowDate 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.menuextra.clock ShowDate 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

System Settings › Menu Bar › Clock Options… › Show the day of the week

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.clock.showTheDayOfTheWeek = true;

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

Where it's stored and what runs
  • com.apple.menuextra.clock ShowDayOfWeek

For false:

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

For true:

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

For unset:

/usr/bin/defaults delete com.apple.menuextra.clock ShowDayOfWeek 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.menuextra.clock ShowDayOfWeek 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

System Settings › Menu Bar › Clock Options… › Style

home-manager · per user ✓ Verified on macOS 27 Restarts ControlCenter
applications.systemSettings.menuBar.clock.style = "Analog";

One of: "Analog""Digital" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.menuextra.clock IsAnalog

For Analog:

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

For Digital:

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

For unset:

/usr/bin/defaults delete com.apple.menuextra.clock IsAnalog 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.menuextra.clock IsAnalog 2>/dev/null || true
/usr/bin/killall ControlCenter 2>/dev/null || true

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

1 setting
  • Menu Bar Controls › Weather — Weather’s menu item is its own app, started through the login window’s persistent apps rather than a preference