From a9e0462e57688b0cb69c8f38f406527872a4b0cb Mon Sep 17 00:00:00 2001 From: Thomas Rehn <271119+tremlin@users.noreply.github.com> Date: Tue, 3 Feb 2026 21:09:02 +0100 Subject: [PATCH] feat: add keyboard shortcut for opening the model selector (#21130) --- src/lib/shortcuts.ts | 6 ++++++ src/routes/(app)/+layout.svelte | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/src/lib/shortcuts.ts b/src/lib/shortcuts.ts index 7e7ba45eee..e1973d4776 100644 --- a/src/lib/shortcuts.ts +++ b/src/lib/shortcuts.ts @@ -16,6 +16,7 @@ export enum Shortcut { NEW_CHAT = 'newChat', NEW_TEMPORARY_CHAT = 'newTemporaryChat', DELETE_CHAT = 'deleteChat', + OPEN_MODEL_SELECTOR = 'openModelSelector', //Global SEARCH = 'search', @@ -58,6 +59,11 @@ export const shortcuts: ShortcutRegistry = { keys: ['mod', 'shift', 'Backspace', 'Delete'], category: 'Chat' }, + [Shortcut.OPEN_MODEL_SELECTOR]: { + name: 'Open Model Selector', + keys: ['mod', 'shift', 'M'], + category: 'Chat' + }, //Global [Shortcut.SEARCH]: { diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index a43665a1b5..87c09440dd 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -230,6 +230,10 @@ event.preventDefault(); showSettings.set(false); showShortcuts.set(false); + } else if (isShortcutMatch(event, shortcuts[Shortcut.OPEN_MODEL_SELECTOR])) { + console.log('Shortcut triggered: OPEN_MODEL_SELECTOR'); + event.preventDefault(); + document.getElementById('model-selector-0-button')?.click(); } else if (isShortcutMatch(event, shortcuts[Shortcut.NEW_TEMPORARY_CHAT])) { console.log('Shortcut triggered: NEW_TEMPORARY_CHAT'); event.preventDefault();