From df952ffa2812dbfd66a2207af0e3c81d691a7e9a Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Mon, 27 Apr 2026 18:49:36 +0200 Subject: [PATCH] Add Screenshot Assist to stored shortcuts, default to Shift+Space, and migrate legacy autocomplete. --- surfsense_desktop/src/modules/shortcuts.ts | 26 +++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/surfsense_desktop/src/modules/shortcuts.ts b/surfsense_desktop/src/modules/shortcuts.ts index 3eb3ca5c9..64687f7db 100644 --- a/surfsense_desktop/src/modules/shortcuts.ts +++ b/surfsense_desktop/src/modules/shortcuts.ts @@ -1,11 +1,13 @@ export interface ShortcutConfig { generalAssist: string; quickAsk: string; + screenshotAssist: string; } const DEFAULTS: ShortcutConfig = { generalAssist: 'CommandOrControl+Shift+S', quickAsk: 'CommandOrControl+Alt+S', + screenshotAssist: 'CommandOrControl+Shift+Space', }; const STORE_KEY = 'shortcuts'; @@ -23,21 +25,25 @@ async function getStore() { return store; } -/** One-time fix if both shortcuts match the mistaken Alt+Shift pair. */ -function wasRegressionAltPair(rest: Record): boolean { - return rest.generalAssist === 'Alt+Shift+G' && rest.quickAsk === 'Alt+Shift+Q'; -} - export async function getShortcuts(): Promise { const s = await getStore(); const raw = (s.get(STORE_KEY) as Record | undefined) ?? {}; + const legacyAutocomplete = raw.autocomplete; const { autocomplete: _drop, ...rest } = raw; - if (wasRegressionAltPair(rest)) { - const fixed = { ...DEFAULTS }; - s.set(STORE_KEY, { ...fixed }); - return fixed; + let merged: ShortcutConfig = { ...DEFAULTS, ...rest }; + if ( + typeof legacyAutocomplete === 'string' && + legacyAutocomplete.length > 0 && + !('screenshotAssist' in raw) + ) { + merged = { ...merged, screenshotAssist: legacyAutocomplete }; + s.set(STORE_KEY, { + generalAssist: merged.generalAssist, + quickAsk: merged.quickAsk, + screenshotAssist: merged.screenshotAssist, + }); } - return { ...DEFAULTS, ...rest }; + return merged; } export async function setShortcuts(config: Partial): Promise {