diff options
| author | Shoubhit Dash <[email protected]> | 2026-03-23 13:30:24 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-23 08:00:24 +0000 |
| commit | 0f5626d2e46f9f8abfe616a33a4fd4f4d989e396 (patch) | |
| tree | 4de359e69cd4606af00f5ca91b83510cabe6fbfe /packages | |
| parent | 5ea95451dd485b15696877a9dd82c30a532b68e0 (diff) | |
| download | opencode-0f5626d2e46f9f8abfe616a33a4fd4f4d989e396.tar.gz opencode-0f5626d2e46f9f8abfe616a33a4fd4f4d989e396.zip | |
fix(app): prefer cmd+k for command palette (#18731)
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/app/e2e/actions.ts | 4 | ||||
| -rw-r--r-- | packages/app/e2e/app/palette.spec.ts | 11 | ||||
| -rw-r--r-- | packages/app/e2e/settings/settings-keybinds.spec.ts | 2 | ||||
| -rw-r--r-- | packages/app/src/context/command-keybind.test.ts | 7 | ||||
| -rw-r--r-- | packages/app/src/pages/session/use-session-commands.tsx | 2 |
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} />), }), |
