diff --git a/v2/src/App.svelte b/v2/src/App.svelte index 75c3149..1485fff 100644 --- a/v2/src/App.svelte +++ b/v2/src/App.svelte @@ -25,10 +25,15 @@ let detachedConfig = getDetachedConfig(); let paletteOpen = $state(false); + let settingsOpen = $state(false); let loaded = $state(false); let activeTab = $derived(getActiveTab()); + function toggleSettings() { + settingsOpen = !settingsOpen; + } + onMount(() => { initTheme(); startAgentDispatcher(); @@ -45,10 +50,10 @@ return; } - // Alt+1..4 — switch workspace tab - if (e.altKey && !e.ctrlKey && e.key >= '1' && e.key <= '4') { + // Alt+1..3 — switch workspace tab + if (e.altKey && !e.ctrlKey && e.key >= '1' && e.key <= '3') { e.preventDefault(); - const tabs = ['sessions', 'docs', 'context', 'settings'] as const; + const tabs = ['sessions', 'docs', 'context'] as const; setActiveTab(tabs[parseInt(e.key) - 1]); return; } @@ -64,10 +69,17 @@ return; } - // Ctrl+, — settings tab + // Ctrl+, — toggle settings drawer if (e.ctrlKey && e.key === ',') { e.preventDefault(); - setActiveTab('settings'); + toggleSettings(); + return; + } + + // Escape — close settings drawer + if (e.key === 'Escape' && settingsOpen) { + e.preventDefault(); + settingsOpen = false; return; } } @@ -99,19 +111,36 @@ {:else if loaded}