General
Everything under System Settings › Keyboard › General, as Nix options. Each one is named after the control
you'd click, and set under programs.nix-plist-manager.options in home-manager.
Delay until repeat
Section titled “Delay until repeat”System Settings › Keyboard › Delay until repeat
Time before a held key repeats, in 15 ms steps: lower is shorter. System Settings offers 120, 94, 68, 35, 25 and 15. Takes effect after logging out.
applications.systemSettings.keyboard.delayUntilRepeat = 10; A number from 10 to 120 "unset" puts back macOS's default.
Where it's stored and what runs
-
NSGlobalDomainInitialKeyRepeat
For 10:
/usr/bin/defaults write NSGlobalDomain InitialKeyRepeat -int 10 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain InitialKeyRepeat -int 10' >&2/usr/bin/defaults -currentHost delete NSGlobalDomain InitialKeyRepeat 2>/dev/null || trueFor 120:
/usr/bin/defaults write NSGlobalDomain InitialKeyRepeat -int 120 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain InitialKeyRepeat -int 120' >&2/usr/bin/defaults -currentHost delete NSGlobalDomain InitialKeyRepeat 2>/dev/null || trueFor unset:
/usr/bin/defaults delete NSGlobalDomain InitialKeyRepeat 2>/dev/null || true/usr/bin/defaults -currentHost delete NSGlobalDomain InitialKeyRepeat 2>/dev/null || trueKey repeat rate
Section titled “Key repeat rate”System Settings › Keyboard › Key repeat rate
Time between repeats, in 15 ms steps: lower is faster. System Settings offers 120, 90, 60, 30, 12, 6 and 2. Takes effect after logging out.
applications.systemSettings.keyboard.keyRepeatRate = 1; A number from 1 to 120 "unset" puts back macOS's default.
Where it's stored and what runs
-
NSGlobalDomainKeyRepeat
For 1:
/usr/bin/defaults write NSGlobalDomain KeyRepeat -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain KeyRepeat -int 1' >&2/usr/bin/defaults -currentHost delete NSGlobalDomain KeyRepeat 2>/dev/null || trueFor 120:
/usr/bin/defaults write NSGlobalDomain KeyRepeat -int 120 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain KeyRepeat -int 120' >&2/usr/bin/defaults -currentHost delete NSGlobalDomain KeyRepeat 2>/dev/null || trueFor unset:
/usr/bin/defaults delete NSGlobalDomain KeyRepeat 2>/dev/null || true/usr/bin/defaults -currentHost delete NSGlobalDomain KeyRepeat 2>/dev/null || trueKeyboard navigation
Section titled “Keyboard navigation”System Settings › Keyboard › Keyboard navigation
applications.systemSettings.keyboard.keyboardNavigation = true; true or false "unset" puts back macOS's default.
Where it's stored and what runs
-
NSGlobalDomainAppleKeyboardUIMode
For false:
/usr/bin/defaults write NSGlobalDomain AppleKeyboardUIMode -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleKeyboardUIMode -int 0' >&2/usr/bin/defaults -currentHost delete NSGlobalDomain AppleKeyboardUIMode 2>/dev/null || trueFor true:
/usr/bin/defaults write NSGlobalDomain AppleKeyboardUIMode -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write NSGlobalDomain AppleKeyboardUIMode -int 2' >&2/usr/bin/defaults -currentHost delete NSGlobalDomain AppleKeyboardUIMode 2>/dev/null || trueFor unset:
/usr/bin/defaults delete NSGlobalDomain AppleKeyboardUIMode 2>/dev/null || true/usr/bin/defaults -currentHost delete NSGlobalDomain AppleKeyboardUIMode 2>/dev/null || truePress 🌐︎ key to
Section titled “Press 🌐︎ key to”System Settings › Keyboard › Press 🌐︎ key to
applications.systemSettings.keyboard.pressGlobeKeyTo = "Change Input Source"; One of: "Change Input Source""Do Nothing""Show Emoji & Symbols""Start Dictation (Press 🌐︎ Twice)" "unset" puts back macOS's default.
Where it's stored and what runs
-
com.apple.HIToolboxAppleFnUsageType
For Change Input Source:
/usr/bin/defaults write com.apple.HIToolbox AppleFnUsageType -int 1 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.HIToolbox AppleFnUsageType -int 1' >&2/usr/bin/defaults -currentHost delete com.apple.HIToolbox AppleFnUsageType 2>/dev/null || trueFor Do Nothing:
/usr/bin/defaults write com.apple.HIToolbox AppleFnUsageType -int 0 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.HIToolbox AppleFnUsageType -int 0' >&2/usr/bin/defaults -currentHost delete com.apple.HIToolbox AppleFnUsageType 2>/dev/null || trueFor Show Emoji & Symbols:
/usr/bin/defaults write com.apple.HIToolbox AppleFnUsageType -int 2 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.HIToolbox AppleFnUsageType -int 2' >&2/usr/bin/defaults -currentHost delete com.apple.HIToolbox AppleFnUsageType 2>/dev/null || trueFor Start Dictation (Press 🌐︎ Twice):
/usr/bin/defaults write com.apple.HIToolbox AppleFnUsageType -int 3 || echo 'nix-plist-manager: failed: /usr/bin/defaults write com.apple.HIToolbox AppleFnUsageType -int 3' >&2/usr/bin/defaults -currentHost delete com.apple.HIToolbox AppleFnUsageType 2>/dev/null || trueFor unset:
/usr/bin/defaults delete com.apple.HIToolbox AppleFnUsageType 2>/dev/null || true/usr/bin/defaults -currentHost delete com.apple.HIToolbox AppleFnUsageType 2>/dev/null || true