Defined in: controllers/hotkey-recorder.ts:48
A Lit ReactiveController that records keyboard shortcuts.
With the default maxSteps: 1, the first valid chord is recorded. With a larger maxSteps, each chord adds a step; the recording commits on Enter (unless commitKeys: 'none'), after idleTimeoutMs, or at maxSteps, and onRecord receives a chord (one step) or a sequence. Escape cancels; Backspace/Delete removes the last step or clears.
class ShortcutSettings extends LitElement {
private recorder = new HotkeyRecorderController(this, {
onRecord: (hotkey) => {
this.shortcut = hotkey
this.requestUpdate()
},
onCancel: () => {
console.log('Recording cancelled')
},
})
private shortcut: Hotkey | null = null
render() {
return html`
<button @click=${() => this.recorder.startRecording()}>
${this.recorder.isRecording ? 'Recording...' : 'Edit Shortcut'}
</button>
${this.recorder.recordedHotkey
? html`<div>Recording: ${this.recorder.recordedHotkey}</div>`
: nothing}
`
}
}new HotkeyRecorderController(host, options): HotkeyRecorderController;Defined in: controllers/hotkey-recorder.ts:80
ReactiveControllerHost
The Lit component that owns this controller.
HotkeyChordRecorderOptions
Options or a getter, read during recording.
HotkeyRecorderController
new HotkeyRecorderController(host, options): HotkeyRecorderController;Defined in: controllers/hotkey-recorder.ts:81
ReactiveControllerHost
HotkeySequenceRecorderOptions
HotkeyRecorderController
new HotkeyRecorderController(host, options): HotkeyRecorderController;Defined in: controllers/hotkey-recorder.ts:88
ReactiveControllerHost
() => HotkeySequenceRecorderOptions
HotkeyRecorderController
new HotkeyRecorderController(host, options): HotkeyRecorderController;Defined in: controllers/hotkey-recorder.ts:92
ReactiveControllerHost
() => HotkeyChordRecorderOptions
HotkeyRecorderController
new HotkeyRecorderController(host, options): HotkeyRecorderController;Defined in: controllers/hotkey-recorder.ts:96
ReactiveControllerHost
() => HotkeyRecorderOptions
HotkeyRecorderController
get isRecording(): boolean;Defined in: controllers/hotkey-recorder.ts:62
Whether recording is currently active.
boolean
get recordedHotkey(): Hotkey | null;Defined in: controllers/hotkey-recorder.ts:67
The last committed hotkey: a chord, or a sequence of two or more steps.
Hotkey | null
get steps(): HotkeySequence;Defined in: controllers/hotkey-recorder.ts:72
Chords recorded so far in a multi-step recording (for live preview).
HotkeySequence
cancelRecording(): void;Defined in: controllers/hotkey-recorder.ts:167
Cancel recording without saving.
void
commitRecording(): void;Defined in: controllers/hotkey-recorder.ts:172
Commit the recorded steps now (multi-step recordings).
void
hostConnected(): void;Defined in: controllers/hotkey-recorder.ts:118
Subscribes to the recorder store and updates the internal state when changes occur.
void
ReactiveController.hostConnectedhostDisconnected(): void;Defined in: controllers/hotkey-recorder.ts:139
Unsubscribes from the recorder store and destroys the recorder instance to prevent memory leaks.
void
ReactiveController.hostDisconnectedsetOptions(options): void;Defined in: controllers/hotkey-recorder.ts:149
Updates the recorder options (e.g. callbacks).
Partial<HotkeyRecorderOptions>
void
startRecording(): void;Defined in: controllers/hotkey-recorder.ts:157
Start recording a new hotkey.
void
stopRecording(): void;Defined in: controllers/hotkey-recorder.ts:162
Stop recording (same as cancel but without calling onCancel).
void