diff options
| author | Filip <[email protected]> | 2026-02-10 22:10:58 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-10 15:10:58 -0600 |
| commit | dce4c05fa9168ca78029142b06363c910cedd06c (patch) | |
| tree | 1a1ddfa7649a758b8177d17e63935536d15886a6 /packages/desktop/src | |
| parent | 8c56571ef95df398fff683253649414a1681c6f6 (diff) | |
| download | opencode-dce4c05fa9168ca78029142b06363c910cedd06c.tar.gz opencode-dce4c05fa9168ca78029142b06363c910cedd06c.zip | |
fix(desktop): open apps with executables on Windows (#13022)
Diffstat (limited to 'packages/desktop/src')
| -rw-r--r-- | packages/desktop/src/bindings.ts | 1 | ||||
| -rw-r--r-- | packages/desktop/src/index.tsx | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/packages/desktop/src/bindings.ts b/packages/desktop/src/bindings.ts index 2db1a624c..c7bcaba9c 100644 --- a/packages/desktop/src/bindings.ts +++ b/packages/desktop/src/bindings.ts @@ -14,6 +14,7 @@ export const commands = { setDisplayBackend: (backend: LinuxDisplayBackend) => __TAURI_INVOKE<null>("set_display_backend", { backend }), parseMarkdownCommand: (markdown: string) => __TAURI_INVOKE<string>("parse_markdown_command", { markdown }), checkAppExists: (appName: string) => __TAURI_INVOKE<boolean>("check_app_exists", { appName }), + resolveAppPath: (appName: string) => __TAURI_INVOKE<string | null>("resolve_app_path", { appName }), }; /** Events */ diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx index 25e9f825c..0e2fcb7fe 100644 --- a/packages/desktop/src/index.tsx +++ b/packages/desktop/src/index.tsx @@ -98,7 +98,12 @@ const createPlatform = (password: Accessor<string | null>): Platform => ({ void shellOpen(url).catch(() => undefined) }, - openPath(path: string, app?: string) { + async openPath(path: string, app?: string) { + const os = ostype() + if (os === "windows" && app) { + const resolvedApp = await commands.resolveAppPath(app) + return openerOpenPath(path, resolvedApp || app) + } return openerOpenPath(path, app) }, |
