From 9d628ab91e05a332c1281f95224f47e7e564a1fe Mon Sep 17 00:00:00 2001 From: BarreiroT Date: Mon, 16 Mar 2026 19:39:50 -0300 Subject: [PATCH 1/2] Start all tasks on Alt + Shift + S --- web-ui/src/App.tsx | 23 ++++++++++--------- .../components/project-navigation-panel.tsx | 2 ++ web-ui/src/hooks/use-app-hotkeys.ts | 7 ++++++ 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/web-ui/src/App.tsx b/web-ui/src/App.tsx index de5f960..3c002ff 100644 --- a/web-ui/src/App.tsx +++ b/web-ui/src/App.tsx @@ -449,17 +449,6 @@ export default function App(): ReactElement { setIsSettingsOpen(true); }, []); - useAppHotkeys({ - selectedCard, - isDetailTerminalOpen, - isHomeTerminalOpen, - handleToggleDetailTerminal, - handleToggleHomeTerminal, - handleToggleExpandDetailTerminal, - handleToggleExpandHomeTerminal, - handleOpenCreateTask, - }); - const { handleProgrammaticCardMoveReady, confirmMoveTaskToTrash, @@ -529,6 +518,18 @@ export default function App(): ReactElement { sendTaskSessionInput, }); + useAppHotkeys({ + selectedCard, + isDetailTerminalOpen, + isHomeTerminalOpen, + handleToggleDetailTerminal, + handleToggleHomeTerminal, + handleToggleExpandDetailTerminal, + handleToggleExpandHomeTerminal, + handleOpenCreateTask, + onStartAllTasks: handleStartAllBacklogTasksWithServiceSetupPrompt + }); + useEffect(() => { if (!pendingTaskStartAfterEditId) { return; diff --git a/web-ui/src/components/project-navigation-panel.tsx b/web-ui/src/components/project-navigation-panel.tsx index ceeac13..4d5a16a 100644 --- a/web-ui/src/components/project-navigation-panel.tsx +++ b/web-ui/src/components/project-navigation-panel.tsx @@ -208,11 +208,13 @@ export function ProjectNavigationPanel({ const isMac = typeof navigator !== "undefined" && /Mac|iPhone|iPad|iPod/.test(navigator.platform || navigator.userAgent); const MOD = isMac ? "\u2318" : "Ctrl"; +const ALT = isMac ? '\u2325' : 'Alt' const ESSENTIAL_SHORTCUTS = [ { keys: ["C"], label: "New task" }, { keys: [MOD, "\u23CE"], label: "Create task" }, { keys: [MOD, "Shift", "\u23CE"], label: "Create & start" }, + { keys: [ALT, "Shift", "s"], label: "Start all tasks" }, { keys: [MOD, "J"], label: "Toggle terminal" }, { keys: [MOD], label: "Hold to link tasks" }, ]; diff --git a/web-ui/src/hooks/use-app-hotkeys.ts b/web-ui/src/hooks/use-app-hotkeys.ts index 40a734f..16db5c8 100644 --- a/web-ui/src/hooks/use-app-hotkeys.ts +++ b/web-ui/src/hooks/use-app-hotkeys.ts @@ -11,6 +11,7 @@ interface UseAppHotkeysInput { handleToggleExpandDetailTerminal: () => void; handleToggleExpandHomeTerminal: () => void; handleOpenCreateTask: () => void; + onStartAllTasks: () => void } export function useAppHotkeys({ @@ -22,6 +23,7 @@ export function useAppHotkeys({ handleToggleExpandDetailTerminal, handleToggleExpandHomeTerminal, handleOpenCreateTask, + onStartAllTasks, }: UseAppHotkeysInput): void { useHotkeys( "mod+j", @@ -40,6 +42,11 @@ export function useAppHotkeys({ [handleToggleDetailTerminal, handleToggleHomeTerminal, selectedCard], ); + useHotkeys('alt+shift+s', onStartAllTasks, { + enableOnContentEditable: false, + enableOnFormTags: false, + }) + useHotkeys( "mod+m", () => { From 3d01207ab7c25cce83b42760b1547462dba9c844 Mon Sep 17 00:00:00 2001 From: BarreiroT Date: Mon, 16 Mar 2026 19:41:24 -0300 Subject: [PATCH 2/2] Add dependencies --- web-ui/src/hooks/use-app-hotkeys.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/web-ui/src/hooks/use-app-hotkeys.ts b/web-ui/src/hooks/use-app-hotkeys.ts index 16db5c8..9f5073c 100644 --- a/web-ui/src/hooks/use-app-hotkeys.ts +++ b/web-ui/src/hooks/use-app-hotkeys.ts @@ -11,7 +11,7 @@ interface UseAppHotkeysInput { handleToggleExpandDetailTerminal: () => void; handleToggleExpandHomeTerminal: () => void; handleOpenCreateTask: () => void; - onStartAllTasks: () => void + onStartAllTasks: () => void; } export function useAppHotkeys({ @@ -42,10 +42,16 @@ export function useAppHotkeys({ [handleToggleDetailTerminal, handleToggleHomeTerminal, selectedCard], ); - useHotkeys('alt+shift+s', onStartAllTasks, { - enableOnContentEditable: false, - enableOnFormTags: false, - }) + useHotkeys( + "alt+shift+s", + onStartAllTasks, + { + enableOnContentEditable: false, + enableOnFormTags: false, + preventDefault: true, + }, + [onStartAllTasks], + ); useHotkeys( "mod+m",