From d0998ccb466377e426c7e72f80f80a22a85f27ee Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Mon, 1 Jul 2024 11:19:39 -0700 Subject: [PATCH] feat: add Warp integration for Linux (#1087) --- app/src/lib/shells/linux.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/lib/shells/linux.ts b/app/src/lib/shells/linux.ts index 260b6033b2e..d42bf5c85d5 100644 --- a/app/src/lib/shells/linux.ts +++ b/app/src/lib/shells/linux.ts @@ -24,6 +24,7 @@ export enum Shell { Alacritty = 'Alacritty', Kitty = 'Kitty', LXTerminal = 'LXDE Terminal', + Warp = 'Warp', } export const Default = Shell.Gnome @@ -68,6 +69,8 @@ function getShellPath(shell: Shell): Promise { return getPathIfAvailable('/usr/bin/kitty') case Shell.LXTerminal: return getPathIfAvailable('/usr/bin/lxterminal') + case Shell.Warp: + return getPathIfAvailable('/usr/bin/warp-terminal') default: return assertNever(shell, `Unknown shell: ${shell}`) } @@ -92,6 +95,7 @@ export async function getAvailableShells(): Promise< alacrittyPath, kittyPath, lxterminalPath, + warpPath, ] = await Promise.all([ getShellPath(Shell.Gnome), getShellPath(Shell.GnomeConsole), @@ -108,6 +112,7 @@ export async function getAvailableShells(): Promise< getShellPath(Shell.Alacritty), getShellPath(Shell.Kitty), getShellPath(Shell.LXTerminal), + getShellPath(Shell.Warp), ]) const shells: Array> = [] @@ -171,6 +176,10 @@ export async function getAvailableShells(): Promise< shells.push({ shell: Shell.LXTerminal, path: lxterminalPath }) } + if (warpPath) { + shells.push({ shell: Shell.Warp, path: warpPath }) + } + return shells } @@ -204,6 +213,8 @@ export function launch( return spawn(foundShell.path, ['--single-instance', '--directory', path]) case Shell.LXTerminal: return spawn(foundShell.path, ['--working-directory=' + path]) + case Shell.Warp: + return spawn(foundShell.path, [], { cwd: path }) default: return assertNever(shell, `Unknown shell: ${shell}`) }