From 75fc914eca3a76866275f27f31422a632a4d79d5 Mon Sep 17 00:00:00 2001 From: Adrian Bonpin Date: Sat, 3 Oct 2026 21:45:09 +0000 Subject: [PATCH] feat: cmd+shift+delete deletes the highlighted conversation (#11) --- README.md | 2 +- src/lib/components/ChatView.tsx | 3 +++ src/sessions.tsx | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8198b93..864d654 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ To change the model later, either edit the **Model** preference directly, or run | `↩` | Send the message in the search bar | | `↩` with an empty bar | Open the highlighted conversation | | `⌘ N` | New chat | -| `⌘ ⌫` | Delete a conversation (in **Chat Sessions**) | +| `⌘ ⇧ ⌫` | Delete the highlighted conversation (also in **Chat Sessions**) | Prompts are single line. An earlier `⌘ ↩` multi-line composer was removed — see [Architecture](#architecture) for why a `Form.TextArea` cannot be laid out cleanly in a launcher. The `Tab` shortcut went with it: the left column *is* the conversation switcher now, so an accessory dropdown would only duplicate it. diff --git a/src/lib/components/ChatView.tsx b/src/lib/components/ChatView.tsx index 8d0e1cb..aedc820 100644 --- a/src/lib/components/ChatView.tsx +++ b/src/lib/components/ChatView.tsx @@ -235,6 +235,9 @@ export function ChatView({ initialSession, initialPrompt }: ChatViewProps) { title="Delete Conversation" icon={Icon.Trash} style="destructive" + // The key macOS labels "delete" is backspace. Vicinae's key map has + // `"backspace" -> Qt::Key_Backspace`, which it renders as the ⌫ token. + shortcut={{ key: "backspace", modifiers: ["cmd", "shift"] }} onAction={() => removeSession(row.id)} /> diff --git a/src/sessions.tsx b/src/sessions.tsx index bbe5fb6..bea6d38 100644 --- a/src/sessions.tsx +++ b/src/sessions.tsx @@ -94,7 +94,8 @@ export default function SessionsCommand() { title="Delete Conversation" icon={Icon.Trash} style="destructive" - shortcut={{ key: "backspace", modifiers: ["cmd"] }} + // Matches the chat view, so one shortcut means one thing across both commands. + shortcut={{ key: "backspace", modifiers: ["cmd", "shift"] }} onAction={() => remove(summary.id)} />