Skip to content

Spotlight

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

5 options 4 verified against System Settings

System Settings › Spotlight › Help Apple Improve Search

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

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

Where it's stored and what runs
  • com.apple.assistant.support Search Queries Data Sharing Status

For false:

/usr/bin/defaults write com.apple.assistant.support 'Search Queries Data Sharing Status' -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.assistant.support '\''Search Queries Data Sharing Status'\'' -int 2' >&2
/usr/bin/defaults -currentHost delete com.apple.assistant.support 'Search Queries Data Sharing Status' 2>/dev/null || true

For true:

/usr/bin/defaults write com.apple.assistant.support 'Search Queries Data Sharing Status' -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.assistant.support '\''Search Queries Data Sharing Status'\'' -int 1' >&2
/usr/bin/defaults -currentHost delete com.apple.assistant.support 'Search Queries Data Sharing Status' 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.assistant.support 'Search Queries Data Sharing Status' 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.assistant.support 'Search Queries Data Sharing Status' 2>/dev/null || true

System Settings › Spotlight › Results from Clipboard

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

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

Where it's stored and what runs
  • com.apple.Spotlight PasteboardHistoryEnabled

For false:

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

For true:

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

For unset:

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

System Settings › Spotlight › Search results

home-manager · per user Not verified
applications.systemSettings.spotlight.searchResults = {
appStore = true;
apps = true;
books = true;
calculator = true;
calendar = true;
contacts = true;
dictionary = true;
files = true;
folders = true;
games = true;
iPhoneApps = true;
mail = true;
menuItems = true;
messages = true;
music = true;
notes = true;
phone = true;
photos = true;
podcasts = true;
reminders = true;
safari = true;
shortcuts = true;
systemSettings = true;
tips = true;
voiceMemos = true;
};

An attribute set of switches, each true, false or left out: "appStore""apps""books""calculator""calendar""contacts""dictionary""files""folders""games""iPhoneApps""mail""menuItems""messages""music""notes""phone""photos""podcasts""reminders""safari""shortcuts""systemSettings""tips""voiceMemos" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.Spotlight EnabledPreferenceRules

For unset:

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

For { appStore = true; apps = true; books = true; calculator = true; calendar = true; contacts = true; dictionary = true; files = true; folders = true; games = true; iPhoneApps = true; mail = true; menuItems = true; messages = true; music = true; notes = true; phone = true; photos = true; podcasts = true; reminders = true; safari = true; shortcuts = true; systemSettings = true; tips = true; voiceMemos = true; }:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''Foundation'\'');var d = $.NSUserDefaults.alloc.initWithSuiteName("com.apple.Spotlight");var items = ObjC.deepUnwrap(d.arrayForKey("EnabledPreferenceRules")) || [];var members = {"System.applications":false,"System.files":false,"System.folders":false,"System.iphoneApps":false,"System.menuItems":false,"com.apple.AddressBook":false,"com.apple.AppStore":false,"com.apple.Dictionary":false,"com.apple.MobileSMS":false,"com.apple.Music":false,"com.apple.Notes":false,"com.apple.Photos":false,"com.apple.Safari":false,"com.apple.VoiceMemos":false,"com.apple.calculator":false,"com.apple.games":false,"com.apple.iBooksX":false,"com.apple.iCal":false,"com.apple.mail":false,"com.apple.mobilephone":false,"com.apple.podcasts":false,"com.apple.reminders":false,"com.apple.shortcuts":false,"com.apple.systempreferences":false,"com.apple.tips":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), "EnabledPreferenceRules");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.Spotlight");var items = ObjC.deepUnwrap(d.arrayForKey("EnabledPreferenceRules")) || [];var members = {"System.applications":false,"System.files":false,"System.folders":false,"System.iphoneApps":false,"System.menuItems":false,"com.apple.AddressBook":false,"com.apple.AppStore":false,"com.apple.Dictionary":false,"com.apple.MobileSMS":false,"com.apple.Music":false,"com.apple.Notes":false,"com.apple.Photos":false,"com.apple.Safari":false,"com.apple.VoiceMemos":false,"com.apple.calculator":false,"com.apple.games":false,"com.apple.iBooksX":false,"com.apple.iCal":false,"com.apple.mail":false,"com.apple.mobilephone":false,"com.apple.podcasts":false,"com.apple.reminders":false,"com.apple.shortcuts":false,"com.apple.systempreferences":false,"com.apple.tips":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), "EnabledPreferenceRules");d.synchronize;'\'' >/dev/null' >&2
/usr/bin/defaults -currentHost delete com.apple.Spotlight EnabledPreferenceRules 2>/dev/null || true

System Settings › Spotlight › Show Related Content

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

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

Where it's stored and what runs
  • com.apple.Spotlight EnabledPreferenceRules

For false:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''Foundation'\'');var d = $.NSUserDefaults.alloc.initWithSuiteName("com.apple.Spotlight");var items = ObjC.deepUnwrap(d.arrayForKey("EnabledPreferenceRules")) || [];var members = {"Custom.relatedContents":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), "EnabledPreferenceRules");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.Spotlight");var items = ObjC.deepUnwrap(d.arrayForKey("EnabledPreferenceRules")) || [];var members = {"Custom.relatedContents":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), "EnabledPreferenceRules");d.synchronize;'\'' >/dev/null' >&2
/usr/bin/defaults -currentHost delete com.apple.Spotlight EnabledPreferenceRules 2>/dev/null || true

For true:

/usr/bin/osascript -l JavaScript -e 'ObjC.import('\''Foundation'\'');var d = $.NSUserDefaults.alloc.initWithSuiteName("com.apple.Spotlight");var items = ObjC.deepUnwrap(d.arrayForKey("EnabledPreferenceRules")) || [];var members = {"Custom.relatedContents":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), "EnabledPreferenceRules");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.Spotlight");var items = ObjC.deepUnwrap(d.arrayForKey("EnabledPreferenceRules")) || [];var members = {"Custom.relatedContents":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), "EnabledPreferenceRules");d.synchronize;'\'' >/dev/null' >&2
/usr/bin/defaults -currentHost delete com.apple.Spotlight EnabledPreferenceRules 2>/dev/null || true

For unset:

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

System Settings › Spotlight › Results from Clipboard › Keep for

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.spotlight.clipboardHistoryIsAvailableInSpotlight = "30 minutes";

One of: "30 minutes""7 days""8 hours" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.Spotlight PasteboardHistoryTimeout

For 30 minutes:

/usr/bin/defaults write com.apple.Spotlight PasteboardHistoryTimeout -int 1800 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.Spotlight PasteboardHistoryTimeout -int 1800' >&2
/usr/bin/defaults -currentHost delete com.apple.Spotlight PasteboardHistoryTimeout 2>/dev/null || true

For 7 days:

/usr/bin/defaults write com.apple.Spotlight PasteboardHistoryTimeout -int 604800 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.Spotlight PasteboardHistoryTimeout -int 604800' >&2
/usr/bin/defaults -currentHost delete com.apple.Spotlight PasteboardHistoryTimeout 2>/dev/null || true

For 8 hours:

/usr/bin/defaults write com.apple.Spotlight PasteboardHistoryTimeout -int 28800 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.Spotlight PasteboardHistoryTimeout -int 28800' >&2
/usr/bin/defaults -currentHost delete com.apple.Spotlight PasteboardHistoryTimeout 2>/dev/null || true

For unset:

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

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

1 setting
  • Privacy › Block search of private files — kept by mds in /System/Volumes/Data/.Spotlight-V100, which only root can read