Hotkeys Docs
API Reference
Hotkeys API Reference
- HotkeyManager
- getHotkeyManager
- Hotkey
- HotkeyChord
- HotkeySequence
- RegisterableHotkey
- RegisterableHotkeyChord
- RegisterableHotkeySequence
- RawHotkeyChord
- HotkeyOptions
- HotkeyChordOptions
- HotkeySequenceOptions
- HotkeyOptionsFor
- HotkeyRegistrationHandle
- HotkeyRegistrationView
- HotkeyChordRegistrationView
- HotkeySequenceRegistrationView
- toHotkeyRegistrationView
- HotkeyCallback
- HotkeyCallbackContext
- HotkeyChordCallbackContext
- HotkeySequenceCallbackContext
- HotkeyCallbackContextFor
- HotkeyMeta
- ConflictBehavior
- isHotkeySequence
- simplifyHotkey
- createSequenceMatcher
- DEFAULT_SEQUENCE_TIMEOUT
- injectDefaultHotkeysOptions
- injectHotkey
- injectHotkeyRegistrations
- injectHotkeys
- injectHotkeysContext
- provideHotkeys
- HotkeysContextValue
- HotkeysProviderOptions
- ProvideHotkeysOptions
- InjectHotkeyChordOptions
- InjectHotkeyCommonOptions
- InjectHotkeyDefinition
- InjectHotkeyOptions
- InjectHotkeyOptionsFor
- InjectHotkeySequenceOptions
- InjectHotkeyTarget
- HOTKEYS_INJECTION_TOKEN
App Hotkeys API Reference
- defineAppHotkeys
- AppHotkeysStore
- provideAppHotkeys
- publishAppHotkeysStore
- AppHotkey
- AppHotkeyInput
- AppHotkeyOptions
- AppHotkeyListItem
- AppHotkeyStatus
- AppHotkeysState
- AppHotkeysStoreOptions
- CustomHotkeys
- Register
- AppHotkeyId
- RegisteredAppHotkeys
- isAppHotkey
- isCustomHotkey
- resolveAppHotkey
- injectAppHotkeyList
- injectAppHotkeys
- injectCustomHotkeys
- InjectCustomHotkeysResult
- InjectAppHotkeyOptions
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
- injectHotkeyRecorder
- AngularHotkeyRecorder
Normalization & format API Reference
- formatForDisplay
- FormatDisplayOptions
- DisplayHotkey
- DisplayHotkeyChord
- 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
AI/LLM: This documentation page is available in plain markdown format at/hotkeys/latest/docs/framework/angular/reference/functions/provideHotkeys.md
Hotkeys API Reference
provideHotkeys
ts
function provideHotkeys(options?): Provider;Defined in: hotkeys-provider.ts:231
Provides default options, app hotkeys, and the user's custom hotkeys to an injector, such as the application or a component.
Provide it in a component to create a hotkey scope. A nested provider inherits app hotkeys and merges default options. With scope, hotkeys injected in the component and its children fire only while it exists and is enabled; with exclusive, only they fire. The scope activates when the first hotkey in it is injected.
Parameters#
options?#
Returns#
Provider
Examples#
ts
bootstrapApplication(App, {
providers: [
provideHotkeys({
appHotkeys,
customHotkeys: JSON.parse(localStorage.getItem('hotkeys') ?? '{}'),
onCustomHotkeysChange: (custom) =>
localStorage.setItem('hotkeys', JSON.stringify(custom)),
}),
],
})ts
@Component({
selector: 'app-edit-dialog',
providers: [provideHotkeys({ scope: 'edit-dialog', exclusive: true })],
template: `...`,
})
export class EditDialog {
constructor() {
injectHotkey('Escape', () => this.close())
}
}ts
// A scope that follows the providing component's input.
@Component({
selector: 'app-folder',
providers: [
provideHotkeys({
scope: () => inject(Folder).name(),
enabled: () => inject(Folder).current(),
}),
],
template: `...`,
})
export class Folder {
readonly name = input.required<string>()
readonly current = input(false)
}