Skip to content

Pointer Control

Everything under System Settings › Accessibility › Pointer 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.

23 options 11 verified against System Settings

System Settings › Accessibility › Pointer Control › Alternate pointer actions

home-manager · per user ✓ Verified on macOS 27 Restarts universalaccessd
applications.systemSettings.accessibility.pointerControl.alternatePointerActions = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Pointer Control › Double-click speed

home-manager · per user Not verified

The time between the clicks of a double-click, in seconds.

applications.systemSettings.accessibility.pointerControl.doubleClickSpeed = 0.15;

A number from 0.15 to 5 "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain com.apple.mouse.doubleClickThreshold

For 0.15:

/usr/bin/defaults write NSGlobalDomain com.apple.mouse.doubleClickThreshold -float 0.150000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain com.apple.mouse.doubleClickThreshold -float 0.150000' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.mouse.doubleClickThreshold 2>/dev/null || true

For 5.0:

/usr/bin/defaults write NSGlobalDomain com.apple.mouse.doubleClickThreshold -float 5.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain com.apple.mouse.doubleClickThreshold -float 5.000000' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.mouse.doubleClickThreshold 2>/dev/null || true

For unset:

/usr/bin/defaults delete NSGlobalDomain com.apple.mouse.doubleClickThreshold 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.mouse.doubleClickThreshold 2>/dev/null || true

System Settings › Accessibility › Pointer Control › Head Pointer

home-manager · per user Not verified Restarts universalaccessd
applications.systemSettings.accessibility.pointerControl.headPointer = true;

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

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

For false:

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

For true:

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

For unset:

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

Ignore built-in trackpad when mouse or wireless trackpad is present

Section titled “Ignore built-in trackpad when mouse or wireless trackpad is present”

System Settings › Accessibility › Pointer Control › Ignore built-in trackpad when mouse or wireless trackpad is present

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

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

Where it's stored and what runs
  • com.apple.driver.AppleBluetoothMultitouch.trackpad USBMouseStopsTrackpad
  • com.apple.AppleMultitouchTrackpad USBMouseStopsTrackpad

For false:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad USBMouseStopsTrackpad -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad USBMouseStopsTrackpad -int 0' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad USBMouseStopsTrackpad -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad USBMouseStopsTrackpad -int 0' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad USBMouseStopsTrackpad 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad USBMouseStopsTrackpad 2>/dev/null || true

For true:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad USBMouseStopsTrackpad -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad USBMouseStopsTrackpad -int 1' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad USBMouseStopsTrackpad -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad USBMouseStopsTrackpad -int 1' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad USBMouseStopsTrackpad 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad USBMouseStopsTrackpad 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad USBMouseStopsTrackpad 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad USBMouseStopsTrackpad 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad USBMouseStopsTrackpad 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad USBMouseStopsTrackpad 2>/dev/null || true

System Settings › Accessibility › Pointer Control › Mouse Keys

home-manager · per user Not verified
applications.systemSettings.accessibility.pointerControl.mouseKeys = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Pointer Control › Spring-loading

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

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

Where it's stored and what runs
  • NSGlobalDomain com.apple.springing.enabled

For false:

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

For true:

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

For unset:

/usr/bin/defaults delete NSGlobalDomain com.apple.springing.enabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.springing.enabled 2>/dev/null || true

System Settings › Accessibility › Pointer Control › Spring-loading speed

home-manager · per user ✓ Verified on macOS 27

The delay before a folder springs open, in seconds; the slider shows 1 minus the delay.

applications.systemSettings.accessibility.pointerControl.springLoadingSpeed = 0.0;

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

Where it's stored and what runs
  • NSGlobalDomain com.apple.springing.delay

For 0.0:

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

For 2.0:

/usr/bin/defaults write NSGlobalDomain com.apple.springing.delay -float 2.000000 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain com.apple.springing.delay -float 2.000000' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.springing.delay 2>/dev/null || true

For unset:

/usr/bin/defaults delete NSGlobalDomain com.apple.springing.delay 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.springing.delay 2>/dev/null || true

System Settings › Accessibility › Pointer Control › Alternate pointer actions (i) › Play sounds

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

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Pointer Control › Alternate pointer actions (i) › Show actions visually

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

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Pointer Control › Head Pointer (i) › Distance to edge

home-manager · per user Not verified

0 to 1; System Settings shows it as a percentage.

applications.systemSettings.accessibility.pointerControl.headPointerOptions.distanceToEdge = 0.0;

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

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

For 0.0:

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

For 1.0:

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

For unset:

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

System Settings › Accessibility › Pointer Control › Head Pointer (i) › Pointer moves

home-manager · per user Not verified
applications.systemSettings.accessibility.pointerControl.headPointerOptions.pointerMoves = "Relative to head movement";

One of: "Relative to head movement""When facing screen edges" "unset" puts back macOS's default.

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

For Relative to head movement:

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

For When facing screen edges:

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

For unset:

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

System Settings › Accessibility › Pointer Control › Head Pointer (i) › Pointer speed

home-manager · per user Not verified
applications.systemSettings.accessibility.pointerControl.headPointerOptions.pointerSpeed = 0.0;

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

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

For 0.0:

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

For 1.0:

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

For unset:

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

Use a switch or facial expression to pause or resume

Section titled “Use a switch or facial expression to pause or resume”

System Settings › Accessibility › Pointer Control › Head Pointer (i) › Use a switch or facial expression to pause or resume

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

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

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

For false:

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

For true:

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

For unset:

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

Use a switch or facial expression to recalibrate

Section titled “Use a switch or facial expression to recalibrate”

System Settings › Accessibility › Pointer Control › Head Pointer (i) › Use a switch or facial expression to recalibrate

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

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

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

For false:

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

For true:

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

For unset:

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

Ignore built-in trackpad when Mouse Keys is on

Section titled “Ignore built-in trackpad when Mouse Keys is on”

System Settings › Accessibility › Pointer Control › Mouse Keys (i) › Ignore built-in trackpad when Mouse Keys is on

home-manager · per user Not verified
applications.systemSettings.accessibility.pointerControl.mouseKeysOptions.ignoreBuiltInTrackpadWhenMouseKeysIsOn = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Pointer Control › Mouse Keys (i) › Initial delay

home-manager · per user Not verified
applications.systemSettings.accessibility.pointerControl.mouseKeysOptions.initialDelay = 0.0;

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

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

For 0.0:

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

For 4.0:

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

For unset:

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

System Settings › Accessibility › Pointer Control › Mouse Keys (i) › Maximum speed

home-manager · per user Not verified
applications.systemSettings.accessibility.pointerControl.mouseKeysOptions.maximumSpeed = 1;

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

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

For 1:

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

For 40:

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

For unset:

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

Press the Option key five times to toggle Mouse Keys

Section titled “Press the Option key five times to toggle Mouse Keys”

System Settings › Accessibility › Pointer Control › Mouse Keys (i) › Press the Option key five times to toggle Mouse Keys

home-manager · per user Not verified
applications.systemSettings.accessibility.pointerControl.mouseKeysOptions.pressTheOptionKeyFiveTimesToToggleMouseKeys = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Pointer Control › Mouse Options… › Scroll speed

home-manager · per user Not verified
applications.systemSettings.accessibility.pointerControl.mouseOptions.scrollSpeed = 0.0;

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

Where it's stored and what runs
  • NSGlobalDomain com.apple.scrollwheel.scaling

For 0.0:

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

For 1.0:

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

For unset:

/usr/bin/defaults delete NSGlobalDomain com.apple.scrollwheel.scaling 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.scrollwheel.scaling 2>/dev/null || true

System Settings › Accessibility › Pointer Control › Trackpad Options… › Dragging style

home-manager · per user ✓ Verified on macOS 27

Off is Use trackpad for dragging turned off.

applications.systemSettings.accessibility.pointerControl.trackpadOptions.dragging = "Off";

One of: "Off""Three Finger Drag""With Drag Lock""Without Drag Lock"

Where it's stored and what runs
  • com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging
  • com.apple.AppleMultitouchTrackpad Dragging
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture
  • com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture
  • NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture (current host)
  • com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock
  • com.apple.AppleMultitouchTrackpad DragLock
  • NSGlobalDomain com.apple.mouse.tapBehavior (current host)
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag
  • com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag
  • NSGlobalDomain com.apple.trackpad.threeFingerDragGesture (current host)
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture
  • com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture
  • NSGlobalDomain com.apple.trackpad.threeFingerVertSwipeGesture (current host)

For Off:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad Dragging -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad Dragging -bool false' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad DragLock -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad DragLock -bool false' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool false' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerDragGesture -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerDragGesture -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad Dragging 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad DragLock 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
tap=$(/usr/bin/defaults -currentHost read NSGlobalDomain com.apple.mouse.tapBehavior 2>/dev/null); if [ "$tap" = 2 ] || [ "$tap" = 3 ]; then /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1; fi

For Three Finger Drag:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad Dragging -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad Dragging -bool false' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture -int 0' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture -int 0' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture -int 0' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad DragLock -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad DragLock -bool false' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerDragGesture -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerDragGesture -bool true' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture -int 0' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture -int 0' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerVertSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerVertSwipeGesture -int 0' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad Dragging 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad DragLock 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
tap=$(/usr/bin/defaults -currentHost read NSGlobalDomain com.apple.mouse.tapBehavior 2>/dev/null); if [ "$tap" = 2 ] || [ "$tap" = 3 ]; then /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1; fi

For With Drag Lock:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging -bool true' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad Dragging -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad Dragging -bool true' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock -bool true' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad DragLock -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad DragLock -bool true' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool false' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerDragGesture -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerDragGesture -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad Dragging 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad DragLock 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 3

For Without Drag Lock:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging -bool true' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad Dragging -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad Dragging -bool true' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad DragLock -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad DragLock -bool false' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool false' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerDragGesture -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerDragGesture -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad Dragging 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad Dragging 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad DragLock 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad DragLock 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 2

System Settings › Accessibility › Pointer Control › Trackpad Options… › Scroll speed

home-manager · per user Not verified
applications.systemSettings.accessibility.pointerControl.trackpadOptions.scrollSpeed = 0.0;

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

Where it's stored and what runs
  • NSGlobalDomain com.apple.trackpad.scrolling

For 0.0:

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

For 1.0:

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

For unset:

/usr/bin/defaults delete NSGlobalDomain com.apple.trackpad.scrolling 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.scrolling 2>/dev/null || true

System Settings › Accessibility › Pointer Control › Trackpad Options… › Use inertia when scrolling

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

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

Where it's stored and what runs
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadMomentumScroll
  • com.apple.AppleMultitouchTrackpad TrackpadMomentumScroll
  • NSGlobalDomain com.apple.trackpad.momentumScroll (current host)

For false:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadMomentumScroll -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadMomentumScroll -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadMomentumScroll -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadMomentumScroll -bool false' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.momentumScroll -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.momentumScroll -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadMomentumScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadMomentumScroll 2>/dev/null || true

For true:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadMomentumScroll -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadMomentumScroll -bool true' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadMomentumScroll -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadMomentumScroll -bool true' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.momentumScroll -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.momentumScroll -bool true' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadMomentumScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadMomentumScroll 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadMomentumScroll 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadMomentumScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.momentumScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadMomentumScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadMomentumScroll 2>/dev/null || true

System Settings › Accessibility › Pointer Control › Trackpad Options… › Use trackpad for scrolling

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

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

Where it's stored and what runs
  • NSGlobalDomain com.apple.trackpad.scrollBehavior (current host)
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadHorizScroll
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadScroll
  • com.apple.AppleMultitouchTrackpad TrackpadHorizScroll
  • com.apple.AppleMultitouchTrackpad TrackpadScroll

For false:

/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.scrollBehavior -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.scrollBehavior -int 0' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadHorizScroll -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadHorizScroll -bool false' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadScroll -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadScroll -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadHorizScroll -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadHorizScroll -bool false' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadScroll -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadScroll -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadHorizScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadHorizScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadScroll 2>/dev/null || true

For true:

/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.scrollBehavior -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.scrollBehavior -int 2' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadHorizScroll -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadHorizScroll -bool true' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadScroll -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadScroll -bool true' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadHorizScroll -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadHorizScroll -bool true' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadScroll -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadScroll -bool true' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadHorizScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadHorizScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadScroll 2>/dev/null || true

For unset:

/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.scrollBehavior 2>/dev/null || true
/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadHorizScroll 2>/dev/null || true
/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadScroll 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadHorizScroll 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadHorizScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadHorizScroll 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadScroll 2>/dev/null || true