From 6506bcbb16098591d6cfc1d42e0a4e75ca95f515 Mon Sep 17 00:00:00 2001 From: crschnick Date: Fri, 6 Feb 2026 23:01:56 +0000 Subject: [PATCH] Rework --- .../app/terminal/ExternalTerminalType.java | 25 +++++++++++++++++++ .../io/xpipe/app/util/DocumentationLink.java | 2 ++ dist/changelog/21.0.md | 22 ++++++++-------- 3 files changed, 39 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/terminal/ExternalTerminalType.java b/app/src/main/java/io/xpipe/app/terminal/ExternalTerminalType.java index 51e1f47af..51deb529e 100644 --- a/app/src/main/java/io/xpipe/app/terminal/ExternalTerminalType.java +++ b/app/src/main/java/io/xpipe/app/terminal/ExternalTerminalType.java @@ -69,6 +69,30 @@ public interface ExternalTerminalType extends PrefsChoiceValue { ExternalTerminalType PTYXIS = new PtyxisTerminalType(); ExternalTerminalType YAKUAKE = new YakuakeTerminalType(); ExternalTerminalType KONSOLE = new KonsoleTerminalType(); + + ExternalTerminalType COOL_RETRO_TERM = new SimplePathType("app.coolRetroTerm", "cool-retro-term", true) { + + @Override + public TerminalOpenFormat getOpenFormat() { + return TerminalOpenFormat.NEW_WINDOW; + } + + @Override + public boolean isRecommended() { + return false; + } + + @Override + public boolean useColoredTitle() { + return true; + } + + @Override + protected CommandBuilder toCommand(TerminalLaunchConfiguration configuration) { + return CommandBuilder.of().add("-T").addQuoted(configuration.getColoredTitle()).add("-e").add(configuration.single().getDialectLaunchCommand()); + } + }; + ExternalTerminalType XFCE = new SimplePathType("app.xfce", "xfce4-terminal", true) { @Override public TerminalOpenFormat getOpenFormat() { @@ -485,6 +509,7 @@ public interface ExternalTerminalType extends PrefsChoiceValue { LXTERMINAL, Q_TERMINAL, WarpTerminalType.LINUX, + COOL_RETRO_TERM, TERMIUS, WaveTerminalType.WAVE_LINUX); List MACOS_TERMINALS = List.of( diff --git a/app/src/main/java/io/xpipe/app/util/DocumentationLink.java b/app/src/main/java/io/xpipe/app/util/DocumentationLink.java index 9315e613a..ccd857c59 100644 --- a/app/src/main/java/io/xpipe/app/util/DocumentationLink.java +++ b/app/src/main/java/io/xpipe/app/util/DocumentationLink.java @@ -5,6 +5,7 @@ import io.xpipe.app.core.AppProperties; public enum DocumentationLink { API("api"), TTY("troubleshoot/tty"), + NETWORK_SWITCH("guide/network-switch"), SSH_BROKEN_PIPE("troubleshoot/ssh#client-loop-send-disconnect--connection-reset--broken-pipe"), WINDOWS_SETUP("guide/installation#windows"), MACOS_SETUP("guide/installation#macos"), @@ -65,6 +66,7 @@ public enum DocumentationLink { SSH_BAD_FILE_DESCRIPTOR("troubleshoot/ssh#bad-file-descriptor"), SSH_KEX("troubleshoot/ssh#no-matching-key-exchange-method"), SSH_IPV6("troubleshoot/ssh#ipv6-issues"), + SSH_CONNECTION_RESET("troubleshoot/ssh#connection-reset"), SSH_CONNECTION_CLOSED("troubleshoot/ssh#connection-closed-by-remote-host"), SSH_KEY_PERMISSIONS("troubleshoot/ssh#key-permissions-too-open"), SSH_NO_ROUTE("troubleshoot/ssh#no-route-to-host"), diff --git a/dist/changelog/21.0.md b/dist/changelog/21.0.md index 36eab9da6..c5f84b92c 100644 --- a/dist/changelog/21.0.md +++ b/dist/changelog/21.0.md @@ -1,6 +1,6 @@ ## Terminal docking -On Windows, you can now make use of docked terminal windows right inside the XPipe window. This works for most terminals on Windows. All other terminal integrations are also supported, meaning that you can achieve a pretty impressive combination of tools. +On Windows, you can now make use of docked terminal windows right inside XPipe. This works for basically all terminals on Windows, meaning that you can achieve almost any combination of tools. Here is a docked WezTerm instance running the zellij multiplexer through WSL: @@ -10,9 +10,7 @@ Here is a Windows Terminal instance with 4 split tabs that were launched through ![Split Dock](https://xpipe.io/assets/images/BlogPage/dock-split.png) -A docked terminal is embedded into the XPipe window but can also be detached from it. This gives you full flexibility on how to handle terminal windows. If you want to disable the terminal docking, you can do so in the settings menu. - -It might take a bit of time to iron out initial issues and edge cases. You can share feedback on how it handles for you. +A docked terminal is embedded into the XPipe window but can also be detached from it. If you want to disable the terminal docking completely, you can do so in the settings menu. ## Cisco switch integration @@ -55,6 +53,15 @@ The scripting system has been completely reworked with the goal of becoming simp - The git sync can now also work with read-only remote permissions - Any git credentials specified in the settings menu now take precedence over the default git CLI credentials. The custom git credentials setting is now also available on Windows +## SSH config improvements + +- Fix various entries like SSH connections or SSH config entries sometimes disappearing from the list on restart +- Fix SSH config write, e.g. for vscode SSH, not properly passing all configured options +- Fix SSH config identity detection not working for patterns in host entries +- Fix custom SSH agent setting not always overriding other agents configured in SSH config +- Fix SSH config files include wildcards failing to parse in some cases +- Fix SSH config import not removing identical aliases for host entries + ## Other - The RAM usage of the application has been improved by a lot @@ -75,13 +82,8 @@ The scripting system has been completely reworked with the goal of becoming simp - Fix docker refresh action taking very long when compose projects were present - Fix ordering for some child connections being random after a restart -- Fix various entries like SSH connections or SSH config entries sometimes disappearing from the list on restart -- Fix SSH config write, e.g. for vscode SSH, not properly passing all configured options -- Fix SSH config identity detection not working for patterns in host entries -- Fix custom SSH agent setting not always overriding other agents configured in SSH config -- Fix SSH config files include wildcards failing to parse in some cases - Fix mstsc certificates trust status not persisting for tunneled RDP connections -- Fix various issues with the Keeper password manager and 2FA support +- Fix various issues with the Keeper password manager and add 2FA support - Fix hetzner cloud integration using invalid context names when multiple CLIs contexts were present - Fix hetzner cloud integration sometimes not stripping away subnet mask from determined IP address - Fix predefined categories being able to be moved and causing breakages