Skip to content

Subtitles and Captioning

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

5 options 5 verified against System Settings

System Settings › Accessibility › Subtitles and Captioning › Apply across apps

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

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

Where it's stored and what runs
  • com.apple.mediaaccessibility MACaptionDisplayTypeStorage

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Subtitles and Captioning › Prefer closed captions and SDH

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

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

Where it's stored and what runs
  • com.apple.mediaaccessibility MACaptionPreferAccessibleCaptions

For false:

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

For true:

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

For unset:

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

Show automatically when languages do not match

Section titled “Show automatically when languages do not match”

System Settings › Accessibility › Subtitles and Captioning › Show automatically when languages do not match

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

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

Where it's stored and what runs
  • com.apple.Accessibility AXSAutomaticCaptionsShowWhenLanguageMismatch

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Subtitles and Captioning › Show on skip back

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

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

Where it's stored and what runs
  • com.apple.Accessibility AXSAutomaticSubtitlesShowOnSkipBack

For false:

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

For true:

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

For unset:

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

System Settings › Accessibility › Subtitles and Captioning › Show when muted

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

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

Where it's stored and what runs
  • com.apple.Accessibility AXSAutomaticSubtitlesShowWhenMuted

For false:

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

For true:

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

For unset:

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