summaryrefslogtreecommitdiffhomepage
path: root/packages/app
diff options
context:
space:
mode:
authorShoubhit Dash <[email protected]>2026-03-23 13:30:24 +0530
committerGitHub <[email protected]>2026-03-23 08:00:24 +0000
commit0f5626d2e46f9f8abfe616a33a4fd4f4d989e396 (patch)
tree4de359e69cd4606af00f5ca91b83510cabe6fbfe /packages/app
parent5ea95451dd485b15696877a9dd82c30a532b68e0 (diff)
downloadopencode-0f5626d2e46f9f8abfe616a33a4fd4f4d989e396.tar.gz
opencode-0f5626d2e46f9f8abfe616a33a4fd4f4d989e396.zip
fix(app): prefer cmd+k for command palette (#18731)
Diffstat (limited to 'packages/app')
-rw-r--r--packages/app/e2e/actions.ts4
-rw-r--r--packages/app/e2e/app/palette.spec.ts11
-rw-r--r--packages/app/e2e/settings/settings-keybinds.spec.ts2
-rw-r--r--packages/app/src/context/command-keybind.test.ts7
-rw-r--r--packages/app/src/pages/session/use-session-commands.tsx2
5 files changed, 21 insertions, 5 deletions
diff --git a/packages/app/e2e/actions.ts b/packages/app/e2e/actions.ts
index aced0756c..90af177ed 100644
--- a/packages/app/e2e/actions.ts
+++ b/packages/app/e2e/actions.ts
@@ -175,9 +175,9 @@ export async function runTerminal(page: Page, input: { cmd: string; token: strin
await expect.poll(() => terminalHas(page, { term, token: input.token }), { timeout }).toBe(true)
}
-export async function openPalette(page: Page) {
+export async function openPalette(page: Page, key = "K") {
await defocus(page)
- await page.keyboard.press(`${modKey}+P`)
+ await page.keyboard.press(`${modKey}+${key}`)
const dialog = page.getByRole("dialog")
await expect(dialog).toBeVisible()
diff --git a/packages/app/e2e/app/palette.spec.ts b/packages/app/e2e/app/palette.spec.ts
index 3ccfd7a92..4c701fab2 100644
--- a/packages/app/e2e/app/palette.spec.ts
+++ b/packages/app/e2e/app/palette.spec.ts
@@ -1,5 +1,5 @@
import { test, expect } from "../fixtures"
-import { openPalette } from "../actions"
+import { closeDialog, openPalette } from "../actions"
test("search palette opens and closes", async ({ page, gotoSession }) => {
await gotoSession()
@@ -9,3 +9,12 @@ test("search palette opens and closes", async ({ page, gotoSession }) => {
await page.keyboard.press("Escape")
await expect(dialog).toHaveCount(0)
})
+
+test("search palette also opens with cmd+p", async ({ page, gotoSession }) => {
+ await gotoSession()
+
+ const dialog = await openPalette(page, "P")
+
+ await closeDialog(page, dialog)
+ await expect(dialog).toHaveCount(0)
+})
diff --git a/packages/app/e2e/settings/settings-keybinds.spec.ts b/packages/app/e2e/settings/settings-keybinds.spec.ts
index 5789dc0eb..4fc50b68d 100644
--- a/packages/app/e2e/settings/settings-keybinds.spec.ts
+++ b/packages/app/e2e/settings/settings-keybinds.spec.ts
@@ -241,7 +241,7 @@ test("changing file open keybind works", async ({ page, gotoSession }) => {
await expect(keybindButton).toBeVisible()
const initialKeybind = await keybindButton.textContent()
- expect(initialKeybind).toContain("P")
+ expect(initialKeybind).toContain("K")
await keybindButton.click()
await expect(keybindButton).toHaveText(/press/i)
diff --git a/packages/app/src/context/command-keybind.test.ts b/packages/app/src/context/command-keybind.test.ts
index 4e38efd8d..d804195c4 100644
--- a/packages/app/src/context/command-keybind.test.ts
+++ b/packages/app/src/context/command-keybind.test.ts
@@ -40,4 +40,11 @@ describe("command keybind helpers", () => {
expect(display.includes("Alt") || display.includes("⌥")).toBe(true)
expect(formatKeybind("none")).toBe("")
})
+
+ test("formatKeybind prefers the first combo", () => {
+ const display = formatKeybind("mod+k,mod+p")
+
+ expect(display.includes("K") || display.includes("k")).toBe(true)
+ expect(display.includes("P") || display.includes("p")).toBe(false)
+ })
})
diff --git a/packages/app/src/pages/session/use-session-commands.tsx b/packages/app/src/pages/session/use-session-commands.tsx
index 1a2e777f5..f17e3f7a1 100644
--- a/packages/app/src/pages/session/use-session-commands.tsx
+++ b/packages/app/src/pages/session/use-session-commands.tsx
@@ -255,7 +255,7 @@ export const useSessionCommands = (actions: SessionCommandContext) => {
id: "file.open",
title: language.t("command.file.open"),
description: language.t("palette.search.placeholder"),
- keybind: "mod+p",
+ keybind: "mod+k,mod+p",
slash: "open",
onSelect: () => dialog.show(() => <DialogSelectFile onOpenFile={showAllFiles} />),
}),