From 645fe40435bdd7a686772f46df2b4e9cb9de7a4d Mon Sep 17 00:00:00 2001 From: crschnick Date: Sun, 24 May 2026 08:40:09 +0000 Subject: [PATCH] Fix wezterm launch --- .../java/io/xpipe/app/terminal/WezTerminalType.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/terminal/WezTerminalType.java b/app/src/main/java/io/xpipe/app/terminal/WezTerminalType.java index ae75afa61..761fbe2fa 100644 --- a/app/src/main/java/io/xpipe/app/terminal/WezTerminalType.java +++ b/app/src/main/java/io/xpipe/app/terminal/WezTerminalType.java @@ -1,6 +1,7 @@ package io.xpipe.app.terminal; import io.xpipe.app.core.AppSystemInfo; +import io.xpipe.app.ext.ProcessControlProvider; import io.xpipe.app.issue.ErrorEventFactory; import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.prefs.ExternalApplicationHelper; @@ -136,12 +137,19 @@ public interface WezTerminalType extends ExternalTerminalType, TrackableTerminal if (configuration.isDock()) { var bounds = NativeWinWindowControl.MAIN_WINDOW.getBounds(); - command.add("--position").addQuoted(bounds.getX() + "," + (bounds.getY() + 20)); + // WezTerm does not launch with negative coordinates + var x = Math.max(bounds.getX(), 0); + var y = Math.max(bounds.getY() + 28, 0); + command.add("--position").addQuoted(x + "," + y); } command.add("--always-new-process") .add(configuration.getPanes().getFirst().getDialectLaunchCommand()); - ExternalApplicationHelper.startAsync(command); + ThreadHelper.runFailableAsync(() -> { + try (var sc = ProcessControlProvider.get().createLocalProcessControl(true).start()) { + sc.command(command).execute(); + } + }); activeSocket = waitForInstanceStart(50); if (activeSocket.isEmpty()) { return;