Skip to content

Switch Control

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

20 options 18 verified against System Settings

System Settings › Accessibility › Switch Control › Appearance

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.appearance = "Dark";

One of: "Dark""Light" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchControlTheme

For Dark:

/usr/bin/defaults write com.apple.universalaccess switchControlTheme -string DisplayThemeLightOnDark || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchControlTheme -string DisplayThemeLightOnDark' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchControlTheme 2>/dev/null || true

For Light:

/usr/bin/defaults write com.apple.universalaccess switchControlTheme -string DisplayThemeDarkOnLight || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchControlTheme -string DisplayThemeDarkOnLight' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchControlTheme 2>/dev/null || true

For unset:

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

System Settings › Accessibility › Switch Control › Auto scanning

home-manager · per user Not verified
applications.systemSettings.accessibility.switchControl.autoScanning = true;

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

Where it's stored and what runs
  • com.apple.universalaccess switchAutoScanEnabled

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Switch Control › Switch Control cursor size

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.cursorSize = "Large";

One of: "Large""Medium""Small" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchCursorSize

For Large:

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

For Medium:

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

For Small:

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

For unset:

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

System Settings › Accessibility › Switch Control › Duration of inactivity

home-manager · per user Not verified

In seconds.

applications.systemSettings.accessibility.switchControl.durationOfInactivity = 1.0;

A number from 1 to 120 "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchHideUITimeout

For 1.0:

/usr/bin/defaults write com.apple.universalaccess switchHideUITimeout -float 1.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchHideUITimeout -float 1.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchHideUITimeout 2>/dev/null || true

For 120.0:

/usr/bin/defaults write com.apple.universalaccess switchHideUITimeout -float 120.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchHideUITimeout -float 120.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchHideUITimeout 2>/dev/null || true

For unset:

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

System Settings › Accessibility › Switch Control › Fade panel after inactivity

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.fadePanelAfterInactivity = true;

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

Where it's stored and what runs
  • com.apple.universalaccess switchHideUIEnabled

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Switch Control › Loops

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.loops = 1;

A number from 1 to 10 "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchScanCycleCount

For 1:

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

For 10:

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

For unset:

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

System Settings › Accessibility › Switch Control › Pointer precision

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.pointerPrecision = "High";

One of: "High""Low" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchMouseMoveStyle

For High:

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

For Low:

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

For unset:

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

System Settings › Accessibility › Switch Control › Restart action position

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.restartActionPosition = "After cursor";

One of: "After cursor""From start of group""From the top" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchElementRestartOption

For After cursor:

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

For From start of group:

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

For From the top:

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

For unset:

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

System Settings › Accessibility › Switch Control › Resume auto scanning after selection

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.resumeAutoScanningAfterSelection = true;

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

Where it's stored and what runs
  • com.apple.universalaccess switchResumeAutoScanningAfterSelectEnabled

For false:

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

For true:

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

For unset:

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

Reverse cursor direction after hitting edge

Section titled “Reverse cursor direction after hitting edge”

System Settings › Accessibility › Switch Control › Reverse cursor direction after hitting edge

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.reverseCursorDirectionAfterHittingEdge = true;

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

Where it's stored and what runs
  • com.apple.universalaccess switchReverseMouseWhenReachingScreenEdge

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Switch Control › Show current text in keyboard panel

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.showCurrentTextInKeyboardPanel = true;

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

Where it's stored and what runs
  • com.apple.universalaccess switchHoverTextToolbarEnabled

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Switch Control › Switch Control

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

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

Where it's stored and what runs
  • com.apple.universalaccess switchOnOffKey

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Switch Control › While navigating

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.whileNavigating = "Do nothing";

One of: "Do nothing""Play sounds""Speak & Play sounds""Speak selection" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchPlaySounds
  • com.apple.universalaccess switchSpeakSelectedElement

For Do nothing:

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

For Play sounds:

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

For Speak & Play sounds:

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

For Speak selection:

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

For unset:

/usr/bin/defaults delete com.apple.universalaccess switchPlaySounds 2>/dev/null || true
/usr/bin/defaults delete com.apple.universalaccess switchSpeakSelectedElement 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchPlaySounds 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchSpeakSelectedElement 2>/dev/null || true

System Settings › Accessibility › Switch Control › Navigation Timing… › Auto scanning interval in interface

home-manager · per user ✓ Verified on macOS 27

In seconds.

applications.systemSettings.accessibility.switchControl.autoScanningIntervalInInterface = 0.1;

A number from 0.1 to 10 "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchAutoScanElementInterval

For 0.1:

/usr/bin/defaults write com.apple.universalaccess switchAutoScanElementInterval -float 0.100000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchAutoScanElementInterval -float 0.100000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchAutoScanElementInterval 2>/dev/null || true

For 10.0:

/usr/bin/defaults write com.apple.universalaccess switchAutoScanElementInterval -float 10.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchAutoScanElementInterval -float 10.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchAutoScanElementInterval 2>/dev/null || true

For unset:

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

System Settings › Accessibility › Switch Control › Navigation Timing… › Auto scanning interval in panels

home-manager · per user ✓ Verified on macOS 27

In seconds.

applications.systemSettings.accessibility.switchControl.autoScanningIntervalInPanels = 0.1;

A number from 0.1 to 10 "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchAutoScanPanelInterval

For 0.1:

/usr/bin/defaults write com.apple.universalaccess switchAutoScanPanelInterval -float 0.100000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchAutoScanPanelInterval -float 0.100000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchAutoScanPanelInterval 2>/dev/null || true

For 10.0:

/usr/bin/defaults write com.apple.universalaccess switchAutoScanPanelInterval -float 10.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchAutoScanPanelInterval -float 10.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchAutoScanPanelInterval 2>/dev/null || true

For unset:

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

System Settings › Accessibility › Switch Control › Navigation Timing… › Gliding & rotating cursor speed

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.accessibility.switchControl.glidingAndRotatingCursorSpeed = 1.0;

A number from 1 to 60 "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchSweepingCursorSpeed

For 1.0:

/usr/bin/defaults write com.apple.universalaccess switchSweepingCursorSpeed -float 1.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchSweepingCursorSpeed -float 1.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchSweepingCursorSpeed 2>/dev/null || true

For 60.0:

/usr/bin/defaults write com.apple.universalaccess switchSweepingCursorSpeed -float 60.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchSweepingCursorSpeed -float 60.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchSweepingCursorSpeed 2>/dev/null || true

For unset:

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

System Settings › Accessibility › Switch Control › Navigation Timing… › Pause on first item

home-manager · per user ✓ Verified on macOS 27

In seconds.

applications.systemSettings.accessibility.switchControl.pauseOnFirstItem = 0.0;

A number from 0 to 10 "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchFirstElementDelay

For 0.0:

/usr/bin/defaults write com.apple.universalaccess switchFirstElementDelay -float 0.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchFirstElementDelay -float 0.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchFirstElementDelay 2>/dev/null || true

For 10.0:

/usr/bin/defaults write com.apple.universalaccess switchFirstElementDelay -float 10.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchFirstElementDelay -float 10.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchFirstElementDelay 2>/dev/null || true

For unset:

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

System Settings › Accessibility › Switch Control › Switch Timing… › Hold before perform duration

home-manager · per user ✓ Verified on macOS 27

In seconds.

applications.systemSettings.accessibility.switchControl.holdBeforePerformDuration = 0.0;

A number from 0 to 10 "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchMinimumPressDuration

For 0.0:

/usr/bin/defaults write com.apple.universalaccess switchMinimumPressDuration -float 0.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchMinimumPressDuration -float 0.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchMinimumPressDuration 2>/dev/null || true

For 10.0:

/usr/bin/defaults write com.apple.universalaccess switchMinimumPressDuration -float 10.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchMinimumPressDuration -float 10.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchMinimumPressDuration 2>/dev/null || true

For unset:

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

System Settings › Accessibility › Switch Control › Switch Timing… › Hold before repeat duration

home-manager · per user ✓ Verified on macOS 27

In seconds.

applications.systemSettings.accessibility.switchControl.holdBeforeRepeatDuration = 0.0;

A number from 0 to 10 "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchHoldBeforeRepeatDuration

For 0.0:

/usr/bin/defaults write com.apple.universalaccess switchHoldBeforeRepeatDuration -float 0.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchHoldBeforeRepeatDuration -float 0.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchHoldBeforeRepeatDuration 2>/dev/null || true

For 10.0:

/usr/bin/defaults write com.apple.universalaccess switchHoldBeforeRepeatDuration -float 10.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchHoldBeforeRepeatDuration -float 10.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchHoldBeforeRepeatDuration 2>/dev/null || true

For unset:

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

System Settings › Accessibility › Switch Control › Switch Timing… › Ignore switch repeats

home-manager · per user ✓ Verified on macOS 27

In seconds.

applications.systemSettings.accessibility.switchControl.ignoreSwitchRepeats = 0.0;

A number from 0 to 10 "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.universalaccess switchCoalescePressesDuration

For 0.0:

/usr/bin/defaults write com.apple.universalaccess switchCoalescePressesDuration -float 0.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchCoalescePressesDuration -float 0.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchCoalescePressesDuration 2>/dev/null || true

For 10.0:

/usr/bin/defaults write com.apple.universalaccess switchCoalescePressesDuration -float 10.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.universalaccess switchCoalescePressesDuration -float 10.000000' >&2
/usr/bin/defaults -currentHost delete com.apple.universalaccess switchCoalescePressesDuration 2>/dev/null || true

For unset:

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