diff --git a/packages/app/src/screens/workspace/workspace-desktop-tabs-row.tsx b/packages/app/src/screens/workspace/workspace-desktop-tabs-row.tsx index 1cdb2f304..18a4a4e5c 100644 --- a/packages/app/src/screens/workspace/workspace-desktop-tabs-row.tsx +++ b/packages/app/src/screens/workspace/workspace-desktop-tabs-row.tsx @@ -16,7 +16,6 @@ import { Copy, Plus, Rows2, - SquarePen, SquareTerminal, X, } from "lucide-react-native"; @@ -70,7 +69,8 @@ type WorkspaceDesktopTabsRowProps = { onCloseTabsToLeft: (tabId: string) => Promise | void; onCloseTabsToRight: (tabId: string) => Promise | void; onCloseOtherTabs: (tabId: string) => Promise | void; - onCreateLauncherTab: (input: { paneId?: string }) => void; + onCreateDraftTab: (input: { paneId?: string }) => void; + onCreateTerminalTab: (input: { paneId?: string }) => void; onReorderTabs: (nextTabs: WorkspaceTabDescriptor[]) => void; onSplitRight: () => void; onSplitDown: () => void; @@ -81,9 +81,6 @@ type WorkspaceDesktopTabsRowProps = { }; function getFallbackTabLabel(tab: WorkspaceTabDescriptor): string { - if (tab.target.kind === "launcher") { - return "New Tab"; - } if (tab.target.kind === "draft") { return "New Agent"; } @@ -338,7 +335,8 @@ export function WorkspaceDesktopTabsRow({ onCloseTabsToLeft, onCloseTabsToRight, onCloseOtherTabs, - onCreateLauncherTab, + onCreateDraftTab, + onCreateTerminalTab, onReorderTabs, onSplitRight, onSplitDown, @@ -349,6 +347,7 @@ export function WorkspaceDesktopTabsRow({ }: WorkspaceDesktopTabsRowProps) { const { theme } = useUnistyles(); const newTabKeys = useShortcutKeys("workspace-tab-new"); + const newTerminalKeys = useShortcutKeys("workspace-terminal-new"); const splitRightKeys = useShortcutKeys("workspace-pane-split-right"); const splitDownKeys = useShortcutKeys("workspace-pane-split-down"); const [tabsContainerWidth, setTabsContainerWidth] = useState(0); @@ -471,20 +470,24 @@ export function WorkspaceDesktopTabsRow({ ); }} /> - - - onCreateLauncherTab({ paneId })} - accessibilityRole="button" - accessibilityLabel="New tab" - style={({ hovered, pressed }) => [ - styles.newTabActionButton, - (hovered || pressed) && styles.newTabActionButtonHovered, - ]} - > - + + onCreateDraftTab({ paneId })} + accessibilityRole="button" + accessibilityLabel="New tab" + style={styles.inlineNewTabButton} + > + {({ hovered, pressed }) => ( + + )} + @@ -495,6 +498,30 @@ export function WorkspaceDesktopTabsRow({ + + + + onCreateTerminalTab({ paneId })} + accessibilityRole="button" + accessibilityLabel="New terminal" + style={({ hovered, pressed }) => [ + styles.newTabActionButton, + (hovered || pressed) && styles.newTabActionButtonHovered, + ]} + > + + + + + New terminal + {newTerminalKeys ? ( + + ) : null} + + + {showPaneSplitActions ? ( <> @@ -785,6 +812,13 @@ const styles = StyleSheet.create((theme) => ({ tabCloseButtonActive: { backgroundColor: theme.colors.surface3, }, + inlineNewTabButton: { + paddingHorizontal: theme.spacing[3], + height: "100%", + alignItems: "center", + justifyContent: "center", + borderRadius: 0, + }, newTabActionButton: { width: 22, height: 22,