From 9e5b7462aff35e2c7be9316db2641928cc3962a7 Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Wed, 30 Apr 2025 22:23:45 +0200 Subject: [PATCH] Add `?` as shortcut for shortcuts dialog (#25253) Bind shortcuts dialog to `?` key --- src/state/quick-bar-mixin.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/state/quick-bar-mixin.ts b/src/state/quick-bar-mixin.ts index 598d064597..6e931a9bd7 100644 --- a/src/state/quick-bar-mixin.ts +++ b/src/state/quick-bar-mixin.ts @@ -15,6 +15,7 @@ import type { HassElement } from "./hass-element"; import { extractSearchParamsObject } from "../common/url/search-params"; import { showVoiceCommandDialog } from "../dialogs/voice-command-dialog/show-ha-voice-command-dialog"; import { canOverrideAlphanumericInput } from "../common/dom/can-override-input"; +import { showShortcutsDialog } from "../dialogs/shortcuts/show-shortcuts-dialog"; declare global { interface HASSDomEvents { @@ -51,6 +52,8 @@ export default >(superClass: T) => case "a": this._showVoiceCommandDialog(ev.detail); break; + case "?": + this._showShortcutDialog(ev.detail); } }); @@ -65,6 +68,8 @@ export default >(superClass: T) => m: (ev) => this._createMyLink(ev), a: (ev) => this._showVoiceCommandDialog(ev), d: (ev) => this._showQuickBar(ev, QuickBarMode.Device), + // Workaround see https://github.com/jamiebuilds/tinykeys/issues/130 + "Shift+?": (ev) => this._showShortcutDialog(ev), // Those are fallbacks for non-latin keyboards that don't have e, c, m keys (qwerty-based shortcuts) KeyE: (ev) => this._showQuickBar(ev), KeyC: (ev) => this._showQuickBar(ev, QuickBarMode.Command), @@ -111,6 +116,19 @@ export default >(superClass: T) => showQuickBar(this, { mode }); } + private _showShortcutDialog(e: KeyboardEvent) { + if (!this._canShowQuickBar(e)) { + return; + } + + if (e.defaultPrevented) { + return; + } + e.preventDefault(); + + showShortcutsDialog(this); + } + private async _createMyLink(e: KeyboardEvent) { if ( !this.hass?.enableShortcuts ||