This commit is contained in:
crschnick
2026-06-30 09:57:40 +00:00
parent 4e88500b6f
commit a2c4b42ae7
24 changed files with 157 additions and 96 deletions
@@ -1,5 +1,6 @@
package io.xpipe.app.terminal;
import io.xpipe.app.util.ThreadHelper;
import io.xpipe.app.util.WindowDockComp;
import javafx.application.Platform;
@@ -30,18 +31,20 @@ public class TerminalDockHubComp extends WindowDockComp<TerminalDockView> {
var window = scene.getWindow();
window.focusedProperty().subscribe(focus -> {
if (!model.isActive()) {
if (!focus) {
return;
}
if (focus) {
var target = scene.getRoot().lookup(".icon-button-comp:hover");
if (target == null) {
Platform.runLater(() -> {
model.focus();
});
var target = scene.getRoot().lookup(".icon-button-comp:hover");
ThreadHelper.runFailableAsync(() -> {
if (!model.isActive()) {
return;
}
}
if (target == null) {
model.focus();
}
});
});
});
return stack;
@@ -14,6 +14,8 @@ import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.app.util.GlobalTimer;
import io.xpipe.app.util.NativeWinWindowControl;
import io.xpipe.app.util.Rect;
import io.xpipe.app.util.ThreadHelper;
import io.xpipe.core.OsType;
import io.xpipe.app.util.OsType;
import javafx.application.Platform;
@@ -165,9 +167,11 @@ public class TerminalDockHubManager {
if (!showing.get()) {
// Run later to guarantee order of operations
Platform.runLater(() -> {
AppLayoutModel.get().selectConnections();
showDock();
attach();
ThreadHelper.runAsync(() -> {
AppLayoutModel.get().selectConnections();
showDock();
attach();
});
});
return false;
}
@@ -209,18 +213,20 @@ public class TerminalDockHubManager {
var wasShowing = new SimpleBooleanProperty();
var wasAttached = new SimpleBooleanProperty();
AppLayoutModel.get().getSelected().addListener((observable, oldValue, newValue) -> {
if (AppLayoutModel.get().getEntries().indexOf(newValue) == 0) {
if (wasShowing.get()) {
showDock();
ThreadHelper.runAsync(() -> {
if (AppLayoutModel.get().getEntries().indexOf(newValue) == 0) {
if (wasShowing.get()) {
showDock();
}
if (wasAttached.get()) {
attach();
}
} else if (AppLayoutModel.get().getEntries().indexOf(oldValue) == 0) {
wasAttached.set(!minimized.get() && !detached.get() && showing.get());
wasShowing.set(showing.get());
hideDock();
}
if (wasAttached.get()) {
attach();
}
} else if (AppLayoutModel.get().getEntries().indexOf(oldValue) == 0) {
wasAttached.set(!minimized.get() && !detached.get() && showing.get());
wasShowing.set(showing.get());
hideDock();
}
});
});
}
@@ -233,7 +239,6 @@ public class TerminalDockHubManager {
}
if (!hubRequests.contains(session.getRequest())) {
t.getControllable().own(NativeWinWindowControl.MAIN_WINDOW);
return;
}
@@ -248,8 +253,10 @@ public class TerminalDockHubManager {
enableDock();
showDock();
Platform.runLater(() -> {
dockModel.trackTerminal(t, dock);
dockModel.closeOtherTerminals(session.getRequest());
ThreadHelper.runAsync(() -> {
dockModel.trackTerminal(t, dock);
dockModel.closeOtherTerminals(session.getRequest());
});
});
}
@@ -316,35 +323,31 @@ public class TerminalDockHubManager {
}
public void enableDock() {
PlatformThread.runLaterIfNeeded(() -> {
if (enabled.get()) {
return;
}
if (enabled.get()) {
return;
}
dockModel.activateView();
enabled.set(true);
showing.set(true);
dockModel.activateView();
enabled.set(true);
showing.set(true);
NativeWinWindowControl.MAIN_WINDOW.setWindowsTransitionsEnabled(false);
AppLayoutModel.get().getQueueEntries().add(queueEntry);
});
NativeWinWindowControl.MAIN_WINDOW.setWindowsTransitionsEnabled(false);
AppLayoutModel.get().getQueueEntries().add(queueEntry);
}
public void disableDock() {
PlatformThread.runLaterIfNeeded(() -> {
if (!enabled.get()) {
return;
}
if (!enabled.get()) {
return;
}
dockModel.deactivateView();
enabled.set(false);
showing.set(false);
dockModel.deactivateView();
enabled.set(false);
showing.set(false);
showDialogIfNeeded();
showDialogIfNeeded();
NativeWinWindowControl.MAIN_WINDOW.setWindowsTransitionsEnabled(true);
AppLayoutModel.get().getQueueEntries().remove(queueEntry);
});
NativeWinWindowControl.MAIN_WINDOW.setWindowsTransitionsEnabled(true);
AppLayoutModel.get().getQueueEntries().remove(queueEntry);
}
public void triggerDock() {
@@ -358,26 +361,22 @@ public class TerminalDockHubManager {
}
public void showDock() {
PlatformThread.runLaterIfNeeded(() -> {
if (showing.get()) {
return;
}
if (showing.get()) {
return;
}
dockModel.activateView();
showing.set(true);
AppLayoutModel.get().selectConnections();
});
dockModel.activateView();
showing.set(true);
AppLayoutModel.get().selectConnections();
}
public void hideDock() {
PlatformThread.runLaterIfNeeded(() -> {
if (!showing.get()) {
return;
}
if (!showing.get()) {
return;
}
dockModel.deactivateView();
showing.set(false);
});
dockModel.deactivateView();
showing.set(false);
}
public void attach() {
@@ -225,26 +225,25 @@ public class TerminalDockView implements WindowDockListener {
TrackEvent.withTrace("Terminal view window shown").handle();
terminalInstances.forEach(terminalInstance -> {
var controllable = terminalInstance.getControllable();
if (!controllable.isActive()) {
return;
}
controllable.updateBoundsState();
if (controllable.isCustomBounds()) {
return;
}
controllable.show();
if (viewActive) {
controllable.removeIcon();
controllable.own(NativeWinWindowControl.MAIN_WINDOW);
controllable.removeStyle(terminalInstance.manageBorders());
controllable.focus();
} else {
controllable.restoreIcon();
controllable.disown();
controllable.backOfWindow(NativeWinWindowControl.MAIN_WINDOW);
if (controllable.isActive()) {
return;
}
if (!viewActive) {
return;
}
controllable.show();
controllable.removeIcon();
controllable.own(NativeWinWindowControl.MAIN_WINDOW);
controllable.removeStyle(terminalInstance.manageBorders());
controllable.focus();
});
}
@@ -63,6 +63,7 @@ public enum DocumentationLink {
SSH_PUBLIC_KEY("guide/ssh#public-key-handling"),
SSH_GATEWAYS("guide/ssh#gateways-and-jump-servers"),
SSH_HOST_KEYS("troubleshoot/ssh#no-matching-host-key-type-found"),
SSH_CIPHERS("troubleshoot/ssh#no-matching-cipher-found"),
SSH_BAD_FILE_DESCRIPTOR("troubleshoot/ssh#bad-file-descriptor"),
SSH_KEX("troubleshoot/ssh#no-matching-key-exchange-method"),
SSH_IPV6("troubleshoot/ssh#ipv6-issues"),
@@ -62,14 +62,24 @@ public class WindowDockComp<T extends WindowDockListener> extends SimpleRegionBu
update(stack);
}
};
var maximized = new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
update(stack);
}
};
var iconified = new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if (newValue) {
model.onWindowMinimize();
ThreadHelper.runAsync(() -> {
model.onWindowMinimize();
});
} else {
Platform.runLater(() -> {
model.onWindowShow();
ThreadHelper.runAsync(() -> {
model.onWindowShow();
});
});
}
}
@@ -89,7 +99,9 @@ public class WindowDockComp<T extends WindowDockListener> extends SimpleRegionBu
var hide = new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
model.onClose();
ThreadHelper.runAsync(() -> {
model.onClose();
});
}
};
@@ -101,6 +113,7 @@ public class WindowDockComp<T extends WindowDockListener> extends SimpleRegionBu
s.yProperty().removeListener(update);
s.widthProperty().removeListener(update);
s.heightProperty().removeListener(update);
s.maximizedProperty().removeListener(maximized);
s.iconifiedProperty().removeListener(iconified);
s.removeEventFilter(WindowEvent.WINDOW_SHOWN, show);
s.removeEventFilter(WindowEvent.WINDOW_CLOSE_REQUEST, hide);
@@ -116,6 +129,7 @@ public class WindowDockComp<T extends WindowDockListener> extends SimpleRegionBu
s.yProperty().addListener(update);
s.widthProperty().addListener(update);
s.heightProperty().addListener(update);
s.maximizedProperty().addListener(maximized);
s.iconifiedProperty().addListener(iconified);
s.outputScaleXProperty().removeListener(scale);
s.addEventFilter(WindowEvent.WINDOW_SHOWN, show);
@@ -146,27 +160,29 @@ public class WindowDockComp<T extends WindowDockListener> extends SimpleRegionBu
return;
}
var windowRect = new NativeWinWindowControl(handle.get()).getBounds();
if (windowRect.getX() == 0.0 && windowRect.getY() == 0.0 && windowRect.getW() == 0 && windowRect.getH() == 0) {
return;
}
ThreadHelper.runAsync(() -> {
var windowRect = new NativeWinWindowControl(handle.get()).getBounds();
if (windowRect.getX() == 0.0 && windowRect.getY() == 0.0 && windowRect.getW() == 0 && windowRect.getH() == 0) {
return;
}
var xPadding = ((bounds.getMinX() + p.getLeft() + scene.getX()) * sx);
var yPadding = ((bounds.getMinY() + p.getTop() + scene.getY()) * sy);
var x = windowRect.getX() + xPadding;
var y = windowRect.getY() + yPadding;
var w = (bounds.getWidth() * sx) - p.getRight() - p.getLeft();
var h = (bounds.getHeight() * sy) - p.getBottom() - p.getTop();
var xPadding = ((bounds.getMinX() + p.getLeft() + scene.getX()) * sx);
var yPadding = ((bounds.getMinY() + p.getTop() + scene.getY()) * sy);
var x = windowRect.getX() + xPadding;
var y = windowRect.getY() + yPadding;
var w = (bounds.getWidth() * sx) - p.getRight() - p.getLeft();
var h = (bounds.getHeight() * sy) - p.getBottom() - p.getTop();
if (x + w > windowRect.getX() + windowRect.getW()) {
x = windowRect.getX() + 10;
w = windowRect.getW() - 20;
}
if (y + h > windowRect.getY() + windowRect.getH()) {
y = windowRect.getY() + 10;
h = windowRect.getH() - 20;
}
if (x + w > windowRect.getX() + windowRect.getW()) {
x = windowRect.getX() + 10;
w = windowRect.getW() - 20;
}
if (y + h > windowRect.getY() + windowRect.getH()) {
y = windowRect.getY() + 10;
h = windowRect.getH() - 20;
}
model.resizeView((int) Math.round(x), (int) Math.round(y), (int) Math.round(w), (int) Math.round(h));
model.resizeView((int) Math.round(x), (int) Math.round(y), (int) Math.round(w), (int) Math.round(h));
});
}
}
+7
View File
@@ -0,0 +1,7 @@
- Fix multiple password manager unlock prompts being spammed when using password manager identities for tunneled RDP connections
- Fix git sync write mixing crlf and lf
- Fix limited system shell removing system info on file browser connect
- Fix network switch port list count always showing 0
- Fix vmware integration failing on empty .vmx files
- Fix MOTD script for fish shell not working in older fish v3 versions
- Add option to automatically add unsupported ciphers to SSH connections
+2
View File
@@ -1399,6 +1399,8 @@ addUnsupportedHostKeyType=Tilføj ikke-understøttet værtsnøgletype
addUnsupportedHostKeyTypeDescription=Tillad, at værtsnøgletypen $VAL$ bruges til denne forbindelse
addUnsupportedMacType=Tilføj ikke-understøttet MAC-type
addUnsupportedMacTypeDescription=Tillad, at MAC-typen $VAL$ bruges til denne forbindelse
addUnsupportedCipher=Tilføj en ikke-understøttet krypteringsalgoritme
addUnsupportedCipherDescription=Tillad, at krypterings $VAL$ en bruges til denne forbindelse
runSilent=lydløst i baggrunden
runInFileBrowser=i en filbrowser
runInConnectionHub=i forbindelseshub
+2
View File
@@ -1390,6 +1390,8 @@ addUnsupportedHostKeyType=Nicht unterstützten Host-Schlüsseltyp hinzufügen
addUnsupportedHostKeyTypeDescription=Erlaube, dass der Host-Schlüsseltyp $VAL$ für diese Verbindung verwendet wird
addUnsupportedMacType=Nicht unterstützten MAC-Typ hinzufügen
addUnsupportedMacTypeDescription=Erlaube die Verwendung des MAC-Typs $VAL$ für diese Verbindung
addUnsupportedCipher=Nicht unterstützte Verschlüsselung hinzufügen
addUnsupportedCipherDescription=Erlaube die Verwendung der Verschlüsselungs $VAL$ für diese Verbindung
runSilent=leise im Hintergrund
runInFileBrowser=im Dateibrowser
runInConnectionHub=im Verbindungs-Hub
+2
View File
@@ -1430,6 +1430,8 @@ addUnsupportedHostKeyType=Add unsupported host key type
addUnsupportedHostKeyTypeDescription=Allow the host key type $VAL$ to be used for this connection
addUnsupportedMacType=Add unsupported MAC type
addUnsupportedMacTypeDescription=Allow the MAC type $VAL$ to be used for this connection
addUnsupportedCipher=Add unsupported cipher
addUnsupportedCipherDescription=Allow the cipher $VAL$ to be used for this connection
runSilent=silently in background
runInFileBrowser=in file browser
runInConnectionHub=in connection hub
+2
View File
@@ -1358,6 +1358,8 @@ addUnsupportedHostKeyType=Añadir un tipo de clave de host no compatible
addUnsupportedHostKeyTypeDescription=Permite que se utilice el tipo de clave de host $VAL$ para esta conexión
addUnsupportedMacType=Añadir un tipo de MAC no compatible
addUnsupportedMacTypeDescription=Permitir que se utilice el tipo de MAC $VAL$ para esta conexión
addUnsupportedCipher=Añadir un cifrado no compatible
addUnsupportedCipherDescription=Permite que se utilice el cifrado « $VAL$ » para esta conexión
runSilent=silenciosamente en segundo plano
runInFileBrowser=en el explorador de archivos
runInConnectionHub=en centro de conexión
+2
View File
@@ -1394,6 +1394,8 @@ addUnsupportedHostKeyType=Ajouter un type de clé hôte non pris en charge
addUnsupportedHostKeyTypeDescription=Autorise l'utilisation du type de clé hôte $VAL$ pour cette connexion
addUnsupportedMacType=Ajouter un type de MAC non pris en charge
addUnsupportedMacTypeDescription=Autorise l'utilisation du type de MAC $VAL$ pour cette connexion
addUnsupportedCipher=Ajouter un algorithme de chiffrement non pris en charge
addUnsupportedCipherDescription=Autoriser l'utilisation de l'$VAL$ de chiffrement pour cette connexion
runSilent=silencieusement en arrière-plan
runInFileBrowser=dans un navigateur de fichiers
runInConnectionHub=dans un concentrateur de connexion
+2
View File
@@ -1358,6 +1358,8 @@ addUnsupportedHostKeyType=Menambahkan jenis kunci host yang tidak didukung
addUnsupportedHostKeyTypeDescription=Izinkan jenis kunci host $VAL$ digunakan untuk koneksi ini
addUnsupportedMacType=Menambahkan jenis MAC yang tidak didukung
addUnsupportedMacTypeDescription=Izinkan jenis MAC $VAL$ digunakan untuk koneksi ini
addUnsupportedCipher=Tambahkan algoritma enkripsi yang tidak didukung
addUnsupportedCipherDescription=Izinkan penggunaan algoritma enkripsi $VAL$ untuk koneksi ini
runSilent=diam-diam di latar belakang
runInFileBrowser=di peramban file
runInConnectionHub=di hub koneksi
+2
View File
@@ -1358,6 +1358,8 @@ addUnsupportedHostKeyType=Aggiungi un tipo di chiave host non supportata
addUnsupportedHostKeyTypeDescription=Consenti l'utilizzo della chiave host di tipo $VAL$ per questa connessione
addUnsupportedMacType=Aggiungi un tipo di MAC non supportato
addUnsupportedMacTypeDescription=Consenti l'utilizzo del tipo MAC $VAL$ per questa connessione
addUnsupportedCipher=Aggiungi un algoritmo di cifratura non supportato
addUnsupportedCipherDescription=Consenti l'uso dell'$VAL$ e di crittografia per questa connessione
runSilent=silenziosamente in background
runInFileBrowser=nel browser di file
runInConnectionHub=in un hub di connessione
+2
View File
@@ -1358,6 +1358,8 @@ addUnsupportedHostKeyType=サポートされていないホスト鍵タイプを
addUnsupportedHostKeyTypeDescription=ホスト鍵タイプ$VAL$ をこの接続に使用することを許可する。
addUnsupportedMacType=サポートされていないMACタイプを追加する
addUnsupportedMacTypeDescription=この接続にMACタイプ$VAL$ を使用することを許可する。
addUnsupportedCipher=未対応の暗号方式を追加する
addUnsupportedCipherDescription=この接続で$VAL$ 暗号の使用を許可する
runSilent=バックグラウンドで静かに
runInFileBrowser=ファイルブラウザ
runInConnectionHub=コネクションハブ
+2
View File
@@ -1391,6 +1391,8 @@ addUnsupportedHostKeyType=지원되지 않는 호스트 키 유형 추가
addUnsupportedHostKeyTypeDescription=이 연결에 호스트 키 유형 $VAL$ 을 사용하도록 허용합니다
addUnsupportedMacType=지원되지 않는 MAC 유형 추가
addUnsupportedMacTypeDescription=이 연결에 MAC 유형 $VAL$ 을 사용하도록 허용합니다
addUnsupportedCipher=지원되지 않는 암호 추가
addUnsupportedCipherDescription=이 연결에 $VAL$ 암호화 방식을 사용할 수 있도록 허용
runSilent=백그라운드에서 조용히
runInFileBrowser=파일 브라우저의 설명 텍스트
runInConnectionHub=연결 허브의
+2
View File
@@ -1358,6 +1358,8 @@ addUnsupportedHostKeyType=Niet-ondersteunde hostsleutel toevoegen
addUnsupportedHostKeyTypeDescription=Sta het gebruik van het hostsleuteltype $VAL$ toe voor deze verbinding
addUnsupportedMacType=Niet-ondersteund MAC-type toevoegen
addUnsupportedMacTypeDescription=Sta het gebruik van het MAC-type $VAL$ toe voor deze verbinding
addUnsupportedCipher=Een niet-ondersteunde versleutelingsmethode toevoegen
addUnsupportedCipherDescription=Sta toe dat de versleutelings $VAL$ e voor deze verbinding wordt gebruikt
runSilent=geruisloos op de achtergrond
runInFileBrowser=in bestandsbrowser
runInConnectionHub=in verbindingshub
+2
View File
@@ -1359,6 +1359,8 @@ addUnsupportedHostKeyType=Dodaj nieobsługiwany typ klucza hosta
addUnsupportedHostKeyTypeDescription=Zezwól na użycie klucza hosta typu $VAL$ dla tego połączenia
addUnsupportedMacType=Dodaj nieobsługiwany typ MAC
addUnsupportedMacTypeDescription=Zezwól na użycie typu MAC $VAL$ dla tego połączenia
addUnsupportedCipher=Dodaj nieobsługiwany algorytm szyfrowania
addUnsupportedCipherDescription=Zezwól na użycie szyfru $VAL$ dla tego połączenia
runSilent=cicho w tle
runInFileBrowser=w przeglądarce plików
runInConnectionHub=w koncentratorze połączeń
+2
View File
@@ -1358,6 +1358,8 @@ addUnsupportedHostKeyType=Adiciona um tipo de chave de anfitrião não suportado
addUnsupportedHostKeyTypeDescription=Permite que o tipo de chave do anfitrião $VAL$ seja utilizado para esta ligação
addUnsupportedMacType=Adiciona um tipo de MAC não suportado
addUnsupportedMacTypeDescription=Permite que o tipo de MAC $VAL$ seja utilizado para esta ligação
addUnsupportedCipher=Adicionar um algoritmo de encriptação não suportado
addUnsupportedCipherDescription=Permite que o algoritmo de encriptação « $VAL$ » seja utilizado nesta ligação
runSilent=silenciosamente em segundo plano
runInFileBrowser=no navegador de ficheiros
runInConnectionHub=num hub de ligação
+2
View File
@@ -1459,6 +1459,8 @@ addUnsupportedHostKeyType=Добавить неподдерживаемый ти
addUnsupportedHostKeyTypeDescription=Разреши использовать ключ типа $VAL$ для этого соединения
addUnsupportedMacType=Добавьте неподдерживаемый тип MAC
addUnsupportedMacTypeDescription=Разрешите использовать MAC-тип $VAL$ для этого соединения
addUnsupportedCipher=Добавить неподдерживаемый алгоритм шифрования
addUnsupportedCipherDescription=Разрешить использование шифра $VAL$ для этого соединения
runSilent=беззвучно в фоновом режиме
runInFileBrowser=в файловом браузере
runInConnectionHub=в соединительном хабе
+2
View File
@@ -1358,6 +1358,8 @@ addUnsupportedHostKeyType=Lägg till en typ av värdnyckel som inte stöds
addUnsupportedHostKeyTypeDescription=Tillåt att värdnyckeltypen $VAL$ används för den här anslutningen
addUnsupportedMacType=Lägg till MAC-typ som inte stöds
addUnsupportedMacTypeDescription=Tillåt att MAC-typen $VAL$ används för den här anslutningen
addUnsupportedCipher=Lägg till en krypteringsalgoritm som inte stöds
addUnsupportedCipherDescription=Tillåt att krypterings $VAL$ en används för denna anslutning
runSilent=tyst i bakgrunden
runInFileBrowser=i filbläddrare
runInConnectionHub=i anslutningsnav
+2
View File
@@ -1358,6 +1358,8 @@ addUnsupportedHostKeyType=Desteklenmeyen ana bilgisayar anahtar türü ekleme
addUnsupportedHostKeyTypeDescription=Bu bağlantı için $VAL$ ana bilgisayar anahtar türünün kullanılmasına izin verin
addUnsupportedMacType=Desteklenmeyen MAC türü ekle
addUnsupportedMacTypeDescription=Bu bağlantı için $VAL$ MAC türünün kullanılmasına izin verin
addUnsupportedCipher=Desteklenmeyen şifreleme yöntemi ekle
addUnsupportedCipherDescription=$VAL$ şifreleme algoritmasının bu bağlantı için kullanılmasına izin ver
runSilent=sessizce arka planda
runInFileBrowser=dosya tarayıcısında
runInConnectionHub=bağlantı merkezinde
+2
View File
@@ -1358,6 +1358,8 @@ addUnsupportedHostKeyType=Thêm loại khóa máy chủ không được hỗ tr
addUnsupportedHostKeyTypeDescription=Cho phép sử dụng loại khóa máy chủ " $VAL$ " cho kết nối này
addUnsupportedMacType=Thêm loại MAC không được hỗ trợ
addUnsupportedMacTypeDescription=Cho phép sử dụng loại MAC $VAL$ cho kết nối này
addUnsupportedCipher=Thêm thuật toán mã hóa chưa được hỗ trợ
addUnsupportedCipherDescription=Cho phép sử dụng thuật toán mã hóa $VAL$ cho kết nối này
runSilent=chạy ngầm ở chế độ nền
runInFileBrowser=trong trình duyệt tệp
runInConnectionHub=trong bộ kết nối
+2
View File
@@ -1861,6 +1861,8 @@ addUnsupportedHostKeyType=添加不支持的主机密钥类型
addUnsupportedHostKeyTypeDescription=允许在此连接中使用主机密钥类型$VAL$
addUnsupportedMacType=添加不支持的 MAC 类型
addUnsupportedMacTypeDescription=允许在此连接中使用 MAC 类型$VAL$
addUnsupportedCipher=添加不受支持的加密算法
addUnsupportedCipherDescription=允许在此连接中使用$VAL$ 加密算法
#custom
runSilent=后台静默运行
runInFileBrowser=在文件浏览器中
+2
View File
@@ -1358,6 +1358,8 @@ addUnsupportedHostKeyType=新增不支援的主機金鑰類型
addUnsupportedHostKeyTypeDescription=允許主機金鑰類型$VAL$ 用於此連線
addUnsupportedMacType=新增不支援的 MAC 類型
addUnsupportedMacTypeDescription=允許 MAC 類型$VAL$ 用於此連線
addUnsupportedCipher=新增未受支援的加密演算法
addUnsupportedCipherDescription=允許在此連線中使用$VAL$ 加密演算法
runSilent=默默地在背景中
runInFileBrowser=在檔案瀏覽器中
runInConnectionHub=連接集線器中