Hotkeys API Reference
- HotkeyManager
- getHotkeyManager
- HotkeyScopesState
- Hotkey
- HotkeyChord
- HotkeySequence
- RegisterableHotkey
- RegisterableHotkeyChord
- RegisterableHotkeySequence
- RawHotkeyChord
- HotkeyOptions
- HotkeyChordOptions
- HotkeySequenceOptions
- HotkeyOptionsFor
- HotkeyRegistrationHandle
- HotkeyRegistrationView
- HotkeyChordRegistrationView
- HotkeySequenceRegistrationView
- HotkeyRegistrationStatus
- toHotkeyRegistrationView
- HotkeyCallback
- HotkeyCallbackContext
- HotkeyChordCallbackContext
- HotkeySequenceCallbackContext
- HotkeyCallbackContextFor
- HotkeyMeta
- ConflictBehavior
- isHotkeySequence
- simplifyHotkey
- createSequenceMatcher
- DEFAULT_SEQUENCE_TIMEOUT
- HotkeysProvider
- useDefaultHotkeysOptions
- useFormatForDisplay
- useHotkey
- useHotkeyRegistrations
- useHotkeyScopesState
- useHotkeys
- useHotkeysContext
- HotkeysProviderOptions
- HotkeysProviderProps
- UseHotkeyChordOptions
- UseHotkeyCommonOptions
- UseHotkeyDefinition
- UseHotkeyOptions
- UseHotkeyOptionsFor
- UseHotkeySequenceOptions
- UseHotkeyTarget
App Hotkeys API Reference
- defineAppHotkeys
- AppHotkeysStore
- provideAppHotkeys
- publishAppHotkeysStore
- AppHotkey
- AppHotkeyInput
- AppHotkeyOptions
- AppHotkeyListItem
- AppHotkeyStatus
- AppHotkeysState
- AppHotkeysStoreOptions
- CustomHotkeys
- Register
- AppHotkeyId
- RegisteredAppHotkeys
- isAppHotkey
- isCustomHotkey
- resolveAppHotkey
- useAppHotkeyList
- useAppHotkeys
- useCustomHotkeys
- UseCustomHotkeysResult
- UseAppHotkeyOptions
Key hold & held keys API Reference
Hotkey Recorder API Reference
- HotkeyRecorder
- HotkeyRecorderOptions
- HotkeyChordRecorderOptions
- HotkeySequenceRecorderOptions
- HotkeyRecorderState
- HotkeyRecorderCommitKeys
- HotkeyRecorderValidationContext
- HotkeyChordRecorderValidationContext
- HotkeySequenceRecorderValidationContext
- RecorderOptions
- RecorderRejection
- RecorderKeyMode
- findHotkeyConflicts
- HotkeyConflict
- HotkeyConflictOptions
- useHotkeyRecorder
- ReactHotkeyRecorder
Normalization & format API Reference
- formatForDisplay
- FormatDisplayOptions
- DisplayHotkey
- DisplayHotkeyChord
- detectPlatform
- HotkeyPlatform
- formatHotkey
- normalizeHotkey
- parseHotkey
- parseKeyboardEvent
- ParsedHotkeyChord
- matchesKeyboardEvent
- areHotkeysEqual
- validateHotkey
- checkHotkey
- assertValidHotkey
- ValidationResult
- ValidatableHotkey
- LogicalKey
- PhysicalKey
- PhysicalKeyCode
- KEY_DISPLAY_SYMBOLS
- PUNCTUATION_KEY_DISPLAY_LABELS
- MAC_MODIFIER_SYMBOLS
- MAC_MODIFIER_LABELS
- WINDOWS_MODIFIER_LABELS
- LINUX_MODIFIER_LABELS
- MODIFIER_ALIASES
- MODIFIER_ORDER
- MODIFIER_KEYS
AppHotkeysStore
Defined in: app-hotkeys.ts:459
Holds declared app hotkeys and the user's custom hotkeys. Framework providers create one and expose it through hooks; devtools read it from HotkeyManager.appHotkeys.
Example#
const store = new AppHotkeysStore(appHotkeys, {
customHotkeys: JSON.parse(localStorage.getItem('hotkeys') ?? '{}'),
onCustomHotkeysChange: (custom) =>
localStorage.setItem('hotkeys', JSON.stringify(custom)),
})
store.setCustomHotkey('doc.save', 'Mod+Shift+S')Type Parameters#
T#
T extends AppHotkeys = AppHotkeys
Constructors#
Constructor#
new AppHotkeysStore<T>(appHotkeys, options?): AppHotkeysStore<T>;Defined in: app-hotkeys.ts:466
Parameters#
appHotkeys#
T
options?#
AppHotkeysStoreOptions<T> = {}
Returns#
AppHotkeysStore<T>
Properties#
store#
readonly store: Store<AppHotkeysState<T>>;Defined in: app-hotkeys.ts:460
Accessors#
appHotkeys#
Get Signature#
get appHotkeys(): T;Defined in: app-hotkeys.ts:485
Effective app hotkeys.
Returns#
T
customHotkeys#
Get Signature#
get customHotkeys(): CustomHotkeys<T>;Defined in: app-hotkeys.ts:490
The user's hotkeys that differ from the defaults.
Returns#
Methods#
findConflicts()#
findConflicts(
id,
hotkey,
recordedWith?
): AppHotkey<string,
| HotkeyChord
| HotkeySequence
| null>[];Defined in: app-hotkeys.ts:579
Other app hotkeys that would collide if id used hotkey. App hotkeys collide when their scopes match or either is 'global', and their hotkeys are equal or one sequence starts with the other.
Pass the recorder's context for a recorded hotkey. Two hotkeys written differently can fire for one key press, such as a recorded Shift+[Slash] and a declared ? on a US keyboard. Only the key press shows that.
Parameters#
id#
keyof T & string
hotkey#
recordedWith?#
Returns#
AppHotkey<string, | HotkeyChord | HotkeySequence | null>[]
Example#
const recorder = new HotkeyRecorder({
validate: (hotkey, context) =>
store.findConflicts('doc.save', hotkey, context).length === 0 ||
'Already in use',
onRecord: (hotkey, context) =>
store.setCustomHotkey('doc.save', hotkey, context),
})get()#
get(id):
| AppHotkey<string,
| HotkeyChord
| HotkeySequence
| null>
| undefined;Defined in: app-hotkeys.ts:554
Effective app hotkey for an id, or undefined when it is not declared.
Parameters#
id#
string
Returns#
| AppHotkey<string, | HotkeyChord | HotkeySequence | null> | undefined
getList()#
getList(registrations): AppHotkeyListItem<T[keyof T]>[];Defined in: app-hotkeys.ts:651
Joins app hotkeys with live registrations, in declaration order. Adapters call this with the manager's registration views.
Parameters#
registrations#
Iterable<HotkeyRegistrationView>
Returns#
AppHotkeyListItem<T[keyof T]>[]
resetCustomHotkey()#
resetCustomHotkey(id): void;Defined in: app-hotkeys.ts:628
Restores the default hotkey for an app hotkey.
Parameters#
id#
keyof T & string
Returns#
void
resetCustomHotkeys()#
resetCustomHotkeys(): void;Defined in: app-hotkeys.ts:635
Restores every default hotkey.
Returns#
void
setAppHotkeys()#
setAppHotkeys(appHotkeys): void;Defined in: app-hotkeys.ts:540
Replaces the declarations, for example after hot module replacement. Custom hotkeys for ids that still exist are kept.
Parameters#
appHotkeys#
T
Returns#
void
setCustomHotkey()#
setCustomHotkey(
id,
hotkey,
recordedWith?
): AppHotkey<string,
| HotkeyChord
| HotkeySequence
| null>[];Defined in: app-hotkeys.ts:605
Sets the user's hotkey for an app hotkey. null unbinds it. A hotkey equal to the default removes the customization. Pass the recorder's context for a recorded hotkey, as for findConflicts.
Parameters#
id#
keyof T & string
hotkey#
Hotkey | null
recordedWith?#
Returns#
AppHotkey<string, | HotkeyChord | HotkeySequence | null>[]
Conflicting app hotkeys. When any exist, nothing changes.
setOptions()#
setOptions(options): void;Defined in: app-hotkeys.ts:504
Updates options. Providers call it with their props on every update.
When customHotkeys differs from the value last passed in, it replaces the current custom hotkeys. An equal value, such as the same saved data parsed again, keeps changes the user made since. undefined changes nothing, such as while saved data loads; null clears them, such as on sign-out. Replacing does not call onCustomHotkeysChange, because the data came from the app.
Parameters#
options#
Returns#
void