Docs
CodeRabbit
Cloudflare
AG Grid
SerpAPI
Netlify
OpenRouter
Neon
WorkOS
Clerk
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
CodeRabbit
Cloudflare
AG Grid
SerpAPI
Netlify
OpenRouter
Neon
WorkOS
Clerk
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
Hotkeys API Reference
App Hotkeys API Reference
Key hold & held keys API Reference
Hotkey Recorder API Reference
Normalization & format API Reference

AdapterHotkeyDefinition

ts
type AdapterHotkeyDefinition<TTarget> = 
  | {
  callback: HotkeyCallback;
  hotkey: RegisterableHotkeyChord;
  options?: AdapterChordOptions<TTarget>;
}
  | {
  callback: HotkeyCallback;
  hotkey: RegisterableHotkeySequence;
  options?: AdapterSequenceOptions<TTarget>;
}
  | {
  callback: HotkeyCallback;
  hotkey: AppHotkey;
  options?: Omit<AdapterCommonOptions<TTarget>, "meta">;
}
  | {
  callback: HotkeyCallback;
  hotkey: RegisterableHotkey;
  options?: AdapterHotkeyOptions<TTarget>;
};
type AdapterHotkeyDefinition<TTarget> = 
  | {
  callback: HotkeyCallback;
  hotkey: RegisterableHotkeyChord;
  options?: AdapterChordOptions<TTarget>;
}
  | {
  callback: HotkeyCallback;
  hotkey: RegisterableHotkeySequence;
  options?: AdapterSequenceOptions<TTarget>;
}
  | {
  callback: HotkeyCallback;
  hotkey: AppHotkey;
  options?: Omit<AdapterCommonOptions<TTarget>, "meta">;
}
  | {
  callback: HotkeyCallback;
  hotkey: RegisterableHotkey;
  options?: AdapterHotkeyOptions<TTarget>;
};

Defined in: adapter.ts:214

One hotkey and its callback for adapter APIs such as useHotkeys. Chords accept requireReset; sequences accept timeout; hotkeys of unknown kind accept only shared options.

Type Parameters

TTarget

TTarget

Union Members

Type Literal

ts
{
  callback: HotkeyCallback;
  hotkey: RegisterableHotkeyChord;
  options?: AdapterChordOptions<TTarget>;
}
{
  callback: HotkeyCallback;
  hotkey: RegisterableHotkeyChord;
  options?: AdapterChordOptions<TTarget>;
}

callback

ts
callback: HotkeyCallback;
callback: HotkeyCallback;

The function to call when the hotkey is pressed

hotkey

ts
hotkey: RegisterableHotkeyChord;
hotkey: RegisterableHotkeyChord;

A chord string such as 'Mod+S', or a chord object

options?

ts
optional options?: AdapterChordOptions<TTarget>;
optional options?: AdapterChordOptions<TTarget>;

Per-hotkey options (merged on top of common options)


Type Literal

ts
{
  callback: HotkeyCallback;
  hotkey: RegisterableHotkeySequence;
  options?: AdapterSequenceOptions<TTarget>;
}
{
  callback: HotkeyCallback;
  hotkey: RegisterableHotkeySequence;
  options?: AdapterSequenceOptions<TTarget>;
}

callback

ts
callback: HotkeyCallback;
callback: HotkeyCallback;

hotkey

ts
hotkey: RegisterableHotkeySequence;
hotkey: RegisterableHotkeySequence;

A sequence such as ['G', 'G'], with each step a string or an object

options?

ts
optional options?: AdapterSequenceOptions<TTarget>;
optional options?: AdapterSequenceOptions<TTarget>;

Type Literal

ts
{
  callback: HotkeyCallback;
  hotkey: AppHotkey;
  options?: Omit<AdapterCommonOptions<TTarget>, "meta">;
}
{
  callback: HotkeyCallback;
  hotkey: AppHotkey;
  options?: Omit<AdapterCommonOptions<TTarget>, "meta">;
}

callback

ts
callback: HotkeyCallback;
callback: HotkeyCallback;

hotkey

ts
hotkey: AppHotkey;
hotkey: AppHotkey;

An app hotkey from defineAppHotkeys. Kind-specific options apply only while its effective hotkey has that kind.

options?

ts
optional options?: Omit<AdapterCommonOptions<TTarget>, "meta">;
optional options?: Omit<AdapterCommonOptions<TTarget>, "meta">;

Type Literal

ts
{
  callback: HotkeyCallback;
  hotkey: RegisterableHotkey;
  options?: AdapterHotkeyOptions<TTarget>;
}
{
  callback: HotkeyCallback;
  hotkey: RegisterableHotkey;
  options?: AdapterHotkeyOptions<TTarget>;
}

callback

ts
callback: HotkeyCallback;
callback: HotkeyCallback;

hotkey

ts
hotkey: RegisterableHotkey;
hotkey: RegisterableHotkey;

A hotkey whose kind is not known statically, such as user data typed Hotkey. Accepts only shared options.

options?

ts
optional options?: AdapterHotkeyOptions<TTarget>;
optional options?: AdapterHotkeyOptions<TTarget>;