Skip to content

Trackpad

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

16 options 15 verified against System Settings

System Settings › Trackpad › More Gestures › App Exposé

home-manager · per user ✓ Verified on macOS 27 Restarts Dock
applications.systemSettings.trackpad.moreGestures.appExpose = "Off";

One of: "Off""Swipe Down with Four Fingers""Swipe Down with Three Fingers" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.dock showAppExposeGestureEnabled
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture
  • com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture
  • NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture (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.dock showAppExposeGestureEnabled -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.dock showAppExposeGestureEnabled -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.dock showAppExposeGestureEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture 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/killall Dock 2>/dev/null || true

For Swipe Down with Four Fingers:

/usr/bin/defaults write com.apple.dock showAppExposeGestureEnabled -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.dock showAppExposeGestureEnabled -bool true' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture -int 2' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture -int 2' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture -int 2' >&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.dock showAppExposeGestureEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture 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/killall Dock 2>/dev/null || true

For Swipe Down with Three Fingers:

/usr/bin/defaults write com.apple.dock showAppExposeGestureEnabled -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.dock showAppExposeGestureEnabled -bool true' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture -int 0' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture -int 0' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture -int 0' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture -int 2' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture -int 2' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerVertSwipeGesture -int 2' >&2
/usr/bin/defaults -currentHost delete com.apple.dock showAppExposeGestureEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture 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/killall Dock 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.dock showAppExposeGestureEnabled 2>/dev/null || true
/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.threeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.dock showAppExposeGestureEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture 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/killall Dock 2>/dev/null || true

System Settings › Trackpad › More Gestures › Mission Control

home-manager · per user ✓ Verified on macOS 27 Restarts Dock
applications.systemSettings.trackpad.moreGestures.missionControl = "Off";

One of: "Off""Swipe Up with Four Fingers""Swipe Up with Three Fingers" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.dock showMissionControlGestureEnabled
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture
  • com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture
  • NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture (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.dock showMissionControlGestureEnabled -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.dock showMissionControlGestureEnabled -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.dock showMissionControlGestureEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture 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/killall Dock 2>/dev/null || true

For Swipe Up with Four Fingers:

/usr/bin/defaults write com.apple.dock showMissionControlGestureEnabled -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.dock showMissionControlGestureEnabled -bool true' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture -int 2' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture -int 2' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture -int 2' >&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.dock showMissionControlGestureEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture 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/killall Dock 2>/dev/null || true

For Swipe Up with Three Fingers:

/usr/bin/defaults write com.apple.dock showMissionControlGestureEnabled -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.dock showMissionControlGestureEnabled -bool true' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture -int 0' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture -int 0' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture -int 0' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture -int 2' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture -int 2' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerVertSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerVertSwipeGesture -int 2' >&2
/usr/bin/defaults -currentHost delete com.apple.dock showMissionControlGestureEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture 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/killall Dock 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.dock showMissionControlGestureEnabled 2>/dev/null || true
/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.fourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.threeFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.dock showMissionControlGestureEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerVertSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerVertSwipeGesture 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/killall Dock 2>/dev/null || true

System Settings › Trackpad › More Gestures › Notification Center

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.moreGestures.notificationCenter = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Trackpad › More Gestures › Show Desktop

home-manager · per user ✓ Verified on macOS 27 Restarts Dock
applications.systemSettings.trackpad.moreGestures.showDesktop = true;

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

Where it's stored and what runs
  • com.apple.dock showDesktopGestureEnabled

For false:

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

For true:

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

For unset:

/usr/bin/defaults delete com.apple.dock showDesktopGestureEnabled 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.dock showDesktopGestureEnabled 2>/dev/null || true
/usr/bin/killall Dock 2>/dev/null || true

System Settings › Trackpad › More Gestures › Swipe between full-screen applications

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.moreGestures.swipeBetweenFullScreenApplications = "Off";

One of: "Off""Swipe Left or Right with Four Fingers""Swipe Left or Right with Three Fingers" "unset" puts back macOS's default.

Where it's stored and what runs
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture
  • com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture
  • NSGlobalDomain com.apple.trackpad.fourFingerHorizSwipeGesture (current host)
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture
  • com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture
  • NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture (current host)

For Off:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture -int 0' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture -int 0' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerHorizSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerHorizSwipeGesture -int 0' >&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 -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture 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

For Swipe Left or Right with Four Fingers:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture -int 2' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture -int 2' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerHorizSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerHorizSwipeGesture -int 2' >&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 -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture 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

For Swipe Left or Right with Three Fingers:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture -int 0' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture -int 0' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerHorizSwipeGesture -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.fourFingerHorizSwipeGesture -int 0' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture -int 2' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture -int 2' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture -int 2' >&2
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture 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

For unset:

/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.fourFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadFourFingerHorizSwipeGesture 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

System Settings › Trackpad › More Gestures › Swipe between pages

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.moreGestures.swipeBetweenPages = "Off";

One of: "Off""Scroll Left or Right with Two Fingers""Swipe with Three Fingers""Swipe with Two or Three Fingers" "unset" puts back macOS's default.

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

For Off:

/usr/bin/defaults write NSGlobalDomain AppleEnableSwipeNavigateWithScrolls -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleEnableSwipeNavigateWithScrolls -bool false' >&2
/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 NSGlobalDomain AppleEnableSwipeNavigateWithScrolls 2>/dev/null || true

For Scroll Left or Right with Two Fingers:

/usr/bin/defaults write NSGlobalDomain AppleEnableSwipeNavigateWithScrolls -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleEnableSwipeNavigateWithScrolls -bool true' >&2
/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 NSGlobalDomain AppleEnableSwipeNavigateWithScrolls 2>/dev/null || true

For Swipe with Three Fingers:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture -int 1' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture -int 1' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture -int 1' >&2
/usr/bin/defaults write NSGlobalDomain AppleEnableSwipeNavigateWithScrolls -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleEnableSwipeNavigateWithScrolls -bool false' >&2
/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 NSGlobalDomain AppleEnableSwipeNavigateWithScrolls 2>/dev/null || true

For Swipe with Two or Three Fingers:

/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture -int 1' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture -int 1' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture -int 1' >&2
/usr/bin/defaults write NSGlobalDomain AppleEnableSwipeNavigateWithScrolls -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleEnableSwipeNavigateWithScrolls -bool true' >&2
/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 NSGlobalDomain AppleEnableSwipeNavigateWithScrolls 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadThreeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture 2>/dev/null || true
/usr/bin/defaults delete NSGlobalDomain AppleEnableSwipeNavigateWithScrolls 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 NSGlobalDomain AppleEnableSwipeNavigateWithScrolls 2>/dev/null || true

System Settings › Trackpad › Point & Click › Click

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.pointAndClick.click = "Firm";

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

Where it's stored and what runs
  • com.apple.AppleMultitouchTrackpad FirstClickThreshold
  • com.apple.AppleMultitouchTrackpad SecondClickThreshold

For Firm:

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

For Light:

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

For Medium:

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

For unset:

/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad FirstClickThreshold 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad SecondClickThreshold 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad FirstClickThreshold 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad SecondClickThreshold 2>/dev/null || true

System Settings › Trackpad › Point & Click › Force Click and haptic feedback

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.pointAndClick.forceClickAndHapticFeedback = true;

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

Where it's stored and what runs
  • com.apple.AppleMultitouchTrackpad ActuateDetents
  • com.apple.AppleMultitouchTrackpad ForceSuppressed

For false:

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

For true:

/usr/bin/defaults write com.apple.AppleMultitouchTrackpad ActuateDetents -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad ActuateDetents -int 1' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad ForceSuppressed -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad ForceSuppressed -bool false' >&2
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad ActuateDetents 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad ForceSuppressed 2>/dev/null || true

For unset:

/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad ActuateDetents 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad ForceSuppressed 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad ActuateDetents 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad ForceSuppressed 2>/dev/null || true

System Settings › Trackpad › Point & Click › Look up & data detectors

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.pointAndClick.lookUpAndDataDetectors = "Force Click with One Finger";

One of: "Force Click with One Finger""Off""Tap with Three Fingers" "unset" puts back macOS's default.

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

For Force Click with One Finger:

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

For Off:

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

For Tap with Three Fingers:

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

For unset:

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

System Settings › Trackpad › Point & Click › Secondary click

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.pointAndClick.secondaryClick = "Click in Bottom Left Corner";

One of: "Click in Bottom Left Corner""Click in Bottom Right Corner""Click or Tap with Two Fingers""Off" "unset" puts back macOS's default.

Where it's stored and what runs
  • NSGlobalDomain ContextMenuGesture
  • com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick
  • NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior (current host)
  • com.apple.AppleMultitouchTrackpad TrackpadRightClick
  • com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick
  • NSGlobalDomain com.apple.trackpad.enableSecondaryClick (current host)

For Click in Bottom Left Corner:

/usr/bin/defaults write NSGlobalDomain ContextMenuGesture -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain ContextMenuGesture -int 1' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick -int 1' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 1' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 3 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 3' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadRightClick -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadRightClick -bool false' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool false' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool false' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain ContextMenuGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadRightClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick 2>/dev/null || true

For Click in Bottom Right Corner:

/usr/bin/defaults write NSGlobalDomain ContextMenuGesture -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain ContextMenuGesture -int 1' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick -int 2' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadRightClick -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadRightClick -bool false' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool false' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool false || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool false' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain ContextMenuGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadRightClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick 2>/dev/null || true

For Click or Tap with Two Fingers:

/usr/bin/defaults write NSGlobalDomain ContextMenuGesture -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain ContextMenuGesture -int 1' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick -int 0' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 0' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 0' >&2
/usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadRightClick -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.AppleMultitouchTrackpad TrackpadRightClick -bool true' >&2
/usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true' >&2
/usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true || echo 'nix-plist-manager: failed: /usr/bin/defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true' >&2
/usr/bin/defaults -currentHost delete NSGlobalDomain ContextMenuGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadRightClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick 2>/dev/null || true

For Off:

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

For unset:

/usr/bin/defaults delete NSGlobalDomain ContextMenuGesture 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick 2>/dev/null || true
/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior 2>/dev/null || true
/usr/bin/defaults delete com.apple.AppleMultitouchTrackpad TrackpadRightClick 2>/dev/null || true
/usr/bin/defaults delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain com.apple.trackpad.enableSecondaryClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete NSGlobalDomain ContextMenuGesture 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadCornerSecondaryClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.AppleMultitouchTrackpad TrackpadRightClick 2>/dev/null || true
/usr/bin/defaults -currentHost delete com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick 2>/dev/null || true

System Settings › Trackpad › Point & Click › Tap to click

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.pointAndClick.tapToClick = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Trackpad › Point & Click › Tracking speed

home-manager · per user Not verified
applications.systemSettings.trackpad.pointAndClick.trackingSpeed = 0.0;

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

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

For 0.0:

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

For 3.0:

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

For unset:

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

System Settings › Trackpad › Scroll & Zoom › Natural scrolling

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.scrollAndZoom.naturalScrolling = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Trackpad › Scroll & Zoom › Rotate

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.scrollAndZoom.rotate = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Trackpad › Scroll & Zoom › Smart zoom

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.scrollAndZoom.smartZoom = true;

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

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

For false:

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

For true:

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

For unset:

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

System Settings › Trackpad › Scroll & Zoom › Zoom in or out

home-manager · per user ✓ Verified on macOS 27
applications.systemSettings.trackpad.scrollAndZoom.zoomInOrOut = true;

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

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

For false:

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

For true:

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

For unset:

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

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

1 setting
  • Quiet click — not shown in the Trackpad pane on the tested Mac