From 48e766f53c2dee2a2c550c335a3de145bd3eaff6 Mon Sep 17 00:00:00 2001 From: AviPeltz Date: Fri, 5 Dec 2025 12:30:57 -0800 Subject: [PATCH 1/2] autofocus new terminal --- .../ContentView/TabsContent/Terminal/Terminal.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx index 1457232ca71..09c643c34c6 100644 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx @@ -108,6 +108,13 @@ export const Terminal = ({ tabId, workspaceId }: TerminalProps) => { } }, [isFocused]); + // Autofocus terminal when it becomes the focused pane (e.g., after split) + useEffect(() => { + if (isFocused && xtermRef.current) { + xtermRef.current.focus(); + } + }, [isFocused]); + // Toggle search with Cmd+F (only for the focused terminal) useHotkeys( HOTKEYS.FIND_IN_TERMINAL.keys, From 5c420becb8a3e22f54fce465424127f69d5aab79 Mon Sep 17 00:00:00 2001 From: AviPeltz Date: Fri, 5 Dec 2025 12:51:26 -0800 Subject: [PATCH 2/2] should fix focus behavior --- .../ContentView/TabsContent/Terminal/Terminal.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx index 09c643c34c6..b3e2f81ef98 100644 --- a/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx +++ b/apps/desktop/src/renderer/screens/main/components/WorkspaceView/ContentView/TabsContent/Terminal/Terminal.tsx @@ -42,6 +42,10 @@ export const Terminal = ({ tabId, workspaceId }: TerminalProps) => { ? focusedPaneIds[pane.windowId] === paneId : false; + // Ref to track focus state for use in terminal creation effect + const isFocusedRef = useRef(isFocused); + isFocusedRef.current = isFocused; + // Required for resolving relative file paths in terminal commands const { data: workspaceCwd } = trpc.terminal.getWorkspaceCwd.useQuery(workspaceId); @@ -140,6 +144,11 @@ export const Terminal = ({ tabId, workspaceId }: TerminalProps) => { fitAddonRef.current = fitAddon; isExitedRef.current = false; + // Autofocus on initial render if this terminal is the focused pane + if (isFocusedRef.current) { + xterm.focus(); + } + // Load search addon for Cmd+F functionality import("@xterm/addon-search").then(({ SearchAddon }) => { if (isUnmounted) return;