diff --git a/dist/changelogs/16.2.md b/dist/changelogs/16.2.md new file mode 100644 index 000000000..af1c811b0 --- /dev/null +++ b/dist/changelogs/16.2.md @@ -0,0 +1,93 @@ +## Docker + +This release introduces support for docker compose. Containers in compose projects are grouped together and can be managed all at the same time via compose project entries. + +The container state information shown is also improved, always showing the container state in combination with the system information. + +## Batch mode + +There is now a batch mode available which allows you to select multiple systems via checkboxes and perform actions for the entire batch. This can include starting/stopping, automatically adding available subconnections, or running scripts on all selected systems. + +You can toggle the batch mode in the top left corner. + +## Terminals + +The terminal integration comes with many new features, so make sure to check out the settings menu: +- There is now built-in support for the terminal multiplexers tmux, zellij, and screen. This is especially useful for terminals without tabbing support. +- There is also now built-in support for custom prompts with starship, oh-my-posh, and oh-my-zsh. +- On Windows, you now have the ability to use a WSL distribution as the terminal environment, allowing you to use the new terminal multiplexer integration seamlessly on Windows systems as well. + +## Password managers + +The password manager integrations have been upgraded: +- There is now support for KeePassXC (Thanks to @illnesse for the large contribution of this feature) +- All password manager integrations have been reworked to work out of the box without configuration +- There is now support to use password manager SSH agents more easily +- The documentation site now contains setup instructions for all supported password managers +- You can now unlock the xpipe vault with your password manager +- Password manager requests are cached, fixing potential password manager overload issues when a lot of passwords are queried +- The password $KEY identifier has been adapted to reflect the individual name/schema of the password key reference + +## SSH + +Various improvements were made to the SSH implementation: +- The SSH gateway implementation has been reworked so that you can now use local SSH keys and other identities for connections with gateways +- The VSCode SSH remote integration has been reworked to allow more connections it to be opened in vscode. It now supports essentially all simple SSH connections, custom SSH connections, SSH config connections, and VM SSH connections. This support includes gateways +- There is now built-in support to refresh an SSO openpubkey with the opkssh tool when needed +- When the SSH password is set to none, XPipe will no longer prompt for it anyway if the preferred auth failed +- There is now the option to enable verbose ssh output to diagnose connection issues better +- For VMs, you can now choose to not use the hypervisor host as SSH gateway and instead directly connect to the VM IP + +## Category configuration + +There is now a new category configuration dialog available. You can find it by clicking on any category -> Configure. The goal of this is to unify the various available configuration options for categories, such as git sync status, color, and more. + +This was added to give finer-grained control over how and when to enable scripts on systems within the category, especially now that there is now support for terminal prompts that can be automatically installed on a system. If you have production systems in a category, you can now exclude those easily from any kind of custom scripting functionality and other modifications to not touch them at all. + +The available configuration options will also be expanded in future updates. + +## Other + +- Generated connection names, e.g. VM names, will now automatically update on refresh when they were changed +- Various speed improvements for shell operations +- Various startup speed improvements +- You can now launch custom scripts within XPipe with a command output dialog window without having to open a terminal +- Various installation types like the linux apt/rpm repository and homebrew installations now support automatic updates as well +- Improve sudo file write dialog to support more permission cases +- Handle cases where file transfer was interrupted better by not overriding the open local file on re-edit with a blank file +- Many dialog windows have now been merged with the main window +- The settings menu has been updated to support continuous scrolling +- Key files synced via git are now synced as pairs if a public key is available +- The script context menus will now use the respective icons of the script entries +- The k8s integration will now automatically add all namespaces for the current context when searching for connections +- The application window will now hide any unnecessary sidebars when being resized to a small width. This makes it much easier to use XPipe in a tiling window arrangement +- The webtop has been updated to have terminal multiplexers, proper konsole tab support, disabled kwallet, and more +- Various error messages and connection creation dialogs now contain a help link to the documentation sections +- The Windows application will now block the shutdown until save/sync has finished, preventing vault corruption caused by a sudden system shutdown +- RDP tunnel connections can now be configured with custom authentication and additional RDP options +- There is now a new introduction quick setup dialog to set the most important options on startup +- The scripts context menu now shows the respective scripts icons instead of generic ones +- The predefined sample script selection has been updated +- Add setting to disable HTTPs TLS verification for license activation API calls for cases where TLS traffic is decrypted in your organization +- Clarify more git password prompts for when a token was required +- Upgrade to GraalVM OpenJDK 24 +- Add Korean translations + +## Fixes + +- Fix various embedded and busybox systems failing to open in file browser when essential commands like stat were missing +- Fix Windows msi updates failing when initial installation was installed per-user with Administrator privileges (will only work for new installs) +- Fix Windows msi updates launching XPipe as Administrator when restarting if it was a system-wide program files installation +- Fix some dialog content shifting around on initial show +- Fix custom service commands not launching properly with PowerShell as the local shell +- Fix update check being influenced by the local GitHub rate limiting +- Fix some file browser terminal dock window ordering issues +- Fix Windows terminal launch failing if default profile was set to launch as admin +- Fix tailscale login check not opening website on Linux +- Fix terminal connections failing to launch for some systems with a read-only file system +- Fix Windows Terminal launch failing if it was not added to the PATH +- Fix some launched applications exiting on Windows if XPipe is closed +- Fix powershell profile modules potentially breaking powershell shell environments +- Fix terminal launch failing on Windows when connection name contained some special characters +- Fix selfhst icons git clone not reliably working for chinese users +- Fix application restart after update not applying current workspace directory diff --git a/dist/changelogs/16.2_incremental.md b/dist/changelogs/16.2_incremental.md new file mode 100644 index 000000000..208e8b710 --- /dev/null +++ b/dist/changelogs/16.2_incremental.md @@ -0,0 +1,14 @@ +## Compose + +Several docker management platforms like portainer restrict external control of their compose projects. Instead of throwing confusing error messages, XPipe now detects if a compose project is managed by an external tool like portainer and displays this state for the compose project and prevents these external modifications. This also fixes cases where some compose projects were not listed by XPipe. + +## Fixes + +- Fix directory rename in file browser not working when pressing enter +- Fix launched electron applications (e.g. vscode) not using the wayland platform if possible, resulting in worse performance +- Fix RDP client files using wrong temp dir +- Fix rare StackOverflow when normalizing files +- Fix service types not updating in display when changed +- Fix WSL terminal environment on Windows not working without multiplexer +- Fix terminal recommended status not being updated when multiplexer settings change +- Fix exception when entering space in file choice text field diff --git a/lang/strings/fixed_en.properties b/lang/strings/fixed_en.properties index 30118d2cc..d25bb4b2b 100644 --- a/lang/strings/fixed_en.properties +++ b/lang/strings/fixed_en.properties @@ -76,7 +76,7 @@ windowsApp=Windows App.app chmod=Chmod chgrp=Chgrp chown=Chown -wsl=Windows Subsystem for Linux +windowsSubsystem=Windows Subsystem for Linux docker=Docker proxmox=Proxmox PVE xonXoff=XON/XOFF @@ -124,3 +124,5 @@ starship=Starship ohmyposh=Oh My Posh ohmyzsh=Oh My Zsh uxterm=UXTerm +portainer=Portainer +wsl=WSL diff --git a/lang/strings/translations_da.properties b/lang/strings/translations_da.properties index ef4e3b77e..d36a1a4bc 100644 --- a/lang/strings/translations_da.properties +++ b/lang/strings/translations_da.properties @@ -1404,3 +1404,5 @@ configure=Konfigurer addConnection=Tilføj forbindelse noCompatibleConnection=Ingen kompatibel forbindelse fundet newCategory=Ny kategori +dockerComposeRestricted=Compose-projektet er begrænset af $NAME$ og kan ikke ændres eksternt. Brug venligst $NAME$ til at administrere dette compose-projekt. +restricted=Begrænset diff --git a/lang/strings/translations_de.properties b/lang/strings/translations_de.properties index 25cb24936..16b2fc798 100644 --- a/lang/strings/translations_de.properties +++ b/lang/strings/translations_de.properties @@ -1390,3 +1390,5 @@ configure=Konfigurieren Sie addConnection=Verbindung hinzufügen noCompatibleConnection=Keine kompatible Verbindung gefunden newCategory=Neue Kategorie +dockerComposeRestricted=Das Kompositionsprojekt ist durch $NAME$ eingeschränkt und kann nicht von außen geändert werden. Bitte verwende $NAME$, um dieses Compose-Projekt zu verwalten. +restricted=Eingeschränkt diff --git a/lang/strings/translations_en.properties b/lang/strings/translations_en.properties index 6f87db3af..7500cf259 100644 --- a/lang/strings/translations_en.properties +++ b/lang/strings/translations_en.properties @@ -1425,3 +1425,5 @@ configure=Configure addConnection=Add connection noCompatibleConnection=No compatible connection found newCategory=New category +dockerComposeRestricted=The compose project is restricted by $NAME$ and can't be modified externally. Please use $NAME$ to manage this compose project. +restricted=Restricted diff --git a/lang/strings/translations_es.properties b/lang/strings/translations_es.properties index c140f10ba..2d6ab02bd 100644 --- a/lang/strings/translations_es.properties +++ b/lang/strings/translations_es.properties @@ -1332,7 +1332,7 @@ refreshOpenpubkey=Actualizar identidad openpubkey refreshOpenpubkeyDescription=Ejecuta opkssh refresh para que la identidad openpubkey vuelva a ser válida all=Todos los terminalPrompt=Terminal prompt -terminalPromptDescription=La herramienta prompt de terminal a utilizar en tus terminales remotos. Habilitar un prompt de terminal establecerá y configurará automáticamente la herramienta prompt en el sistema de destino al abrir una sesión de terminal.\n\nEsto no modifica ninguna configuración de avisos o archivos de perfil existentes en un sistema. Esto aumentará el tiempo de carga del terminal por primera vez mientras se configura el prompt en el sistema remoto. Es posible que tu terminal necesite una fuente especial de https://github.com/ryanoasis/nerd-fonts para mostrar el prompt correctamente. +terminalPromptDescription=La herramienta prompt de terminal a utilizar en tus terminales remotos. Habilitar un prompt de terminal establecerá y configurará automáticamente la herramienta prompt en el sistema de destino al abrir una sesión de terminal.\n\nEsto no modifica ninguna configuración de prompt ni archivos de perfil existentes en un sistema. Esto aumentará el tiempo de carga del terminal por primera vez mientras se configura el prompt en el sistema remoto. Es posible que tu terminal necesite una fuente especial de https://github.com/ryanoasis/nerd-fonts para mostrar el prompt correctamente. terminalPromptConfiguration=Configuración del indicador de terminal terminalPromptConfig=Archivo de configuración terminalPromptConfigDescription=El archivo de configuración personalizada que se aplicará al prompt. Esta configuración se establecerá automáticamente en el sistema de destino cuando se inicialice el terminal y se utilizará como configuración predeterminada del indicador.\n\nSi quieres utilizar el archivo de configuración por defecto existente en cada sistema, puedes dejar este campo vacío. @@ -1359,3 +1359,5 @@ configure=Configura addConnection=Añadir conexión noCompatibleConnection=No se ha encontrado ninguna conexión compatible newCategory=Nueva categoría +dockerComposeRestricted=El proyecto compose está restringido por $NAME$ y no puede modificarse externamente. Por favor, utiliza $NAME$ para gestionar este proyecto de composición. +restricted=Restringido diff --git a/lang/strings/translations_fr.properties b/lang/strings/translations_fr.properties index 20d89a497..0967e6cba 100644 --- a/lang/strings/translations_fr.properties +++ b/lang/strings/translations_fr.properties @@ -1398,3 +1398,5 @@ configure=Configurer addConnection=Ajouter une connexion noCompatibleConnection=Aucune connexion compatible trouvée newCategory=Nouvelle catégorie +dockerComposeRestricted=Le projet compose est restreint par $NAME$ et ne peut pas être modifié de l'extérieur. Utilise $NAME$ pour gérer ce projet compose. +restricted=Restreint diff --git a/lang/strings/translations_id.properties b/lang/strings/translations_id.properties index 3c92de27d..ab9839c9a 100644 --- a/lang/strings/translations_id.properties +++ b/lang/strings/translations_id.properties @@ -1359,3 +1359,5 @@ configure=Mengkonfigurasi addConnection=Menambahkan koneksi noCompatibleConnection=Tidak ditemukan koneksi yang kompatibel newCategory=Kategori baru +dockerComposeRestricted=Proyek compose ini dibatasi oleh $NAME$ dan tidak dapat dimodifikasi secara eksternal. Silakan gunakan $NAME$ untuk mengelola proyek penulisan ini. +restricted=Dibatasi diff --git a/lang/strings/translations_it.properties b/lang/strings/translations_it.properties index e0f4f9fba..d1c83b4c2 100644 --- a/lang/strings/translations_it.properties +++ b/lang/strings/translations_it.properties @@ -1359,3 +1359,5 @@ configure=Configurare addConnection=Aggiungi connessione noCompatibleConnection=Nessuna connessione compatibile trovata newCategory=Nuova categoria +dockerComposeRestricted=Il progetto compose è limitato da $NAME$ e non può essere modificato dall'esterno. Utilizza $NAME$ per gestire questo progetto di composizione. +restricted=Limitato diff --git a/lang/strings/translations_ja.properties b/lang/strings/translations_ja.properties index 8b1fb7d4b..4da40e166 100644 --- a/lang/strings/translations_ja.properties +++ b/lang/strings/translations_ja.properties @@ -1359,3 +1359,5 @@ configure=設定する addConnection=接続を追加する noCompatibleConnection=互換性のある接続が見つからない newCategory=新しいカテゴリー +dockerComposeRestricted=composeプロジェクトは$NAME$ 。このcomposeプロジェクトの管理には$NAME$ 。 +restricted=制限あり diff --git a/lang/strings/translations_ko.properties b/lang/strings/translations_ko.properties index 469b307c1..dab351f15 100644 --- a/lang/strings/translations_ko.properties +++ b/lang/strings/translations_ko.properties @@ -1359,3 +1359,5 @@ configure=구성 addConnection=연결 추가 noCompatibleConnection=호환되는 연결을 찾을 수 없습니다 newCategory=새 카테고리 +dockerComposeRestricted=이 작성 프로젝트는 $NAME$ 에 의해 제한되며 외부에서 수정할 수 없습니다. 이 작성 프로젝트를 관리하려면 $NAME$ 을 사용하세요. +restricted=제한됨 diff --git a/lang/strings/translations_nl.properties b/lang/strings/translations_nl.properties index 66631f867..8e519167f 100644 --- a/lang/strings/translations_nl.properties +++ b/lang/strings/translations_nl.properties @@ -1359,3 +1359,5 @@ configure=Configureren addConnection=Verbinding toevoegen noCompatibleConnection=Geen compatibele verbinding gevonden newCategory=Nieuwe categorie +dockerComposeRestricted=Het compose project is beperkt door $NAME$ en kan niet extern gewijzigd worden. Gebruik $NAME$ om dit compose project te beheren. +restricted=Beperkt diff --git a/lang/strings/translations_pl.properties b/lang/strings/translations_pl.properties index d2f9c3dfc..e7b520e6d 100644 --- a/lang/strings/translations_pl.properties +++ b/lang/strings/translations_pl.properties @@ -1360,3 +1360,5 @@ configure=Konfiguruj addConnection=Dodaj połączenie noCompatibleConnection=Nie znaleziono zgodnego połączenia newCategory=Nowa kategoria +dockerComposeRestricted=Projekt compose jest ograniczony przez $NAME$ i nie może być modyfikowany zewnętrznie. Użyj $NAME$ do zarządzania tym projektem compose. +restricted=Ograniczony diff --git a/lang/strings/translations_pt.properties b/lang/strings/translations_pt.properties index 9426b5447..2dedfc329 100644 --- a/lang/strings/translations_pt.properties +++ b/lang/strings/translations_pt.properties @@ -1359,3 +1359,5 @@ configure=Configura addConnection=Adiciona uma ligação noCompatibleConnection=Não encontraste uma ligação compatível newCategory=Nova categoria +dockerComposeRestricted=O projeto compose é restrito por $NAME$ e não pode ser modificado externamente. Utiliza $NAME$ para gerir este projeto de composição. +restricted=Restrito diff --git a/lang/strings/translations_ru.properties b/lang/strings/translations_ru.properties index 92a3836c3..0141cb443 100644 --- a/lang/strings/translations_ru.properties +++ b/lang/strings/translations_ru.properties @@ -1359,3 +1359,5 @@ configure=Настройте addConnection=Добавить соединение noCompatibleConnection=Не найдено совместимое соединение newCategory=Новая категория +dockerComposeRestricted=Проект compose ограничен $NAME$ и не может быть изменен извне. Пожалуйста, используй $NAME$ для управления этим проектом compose. +restricted=Ограниченный diff --git a/lang/strings/translations_sv.properties b/lang/strings/translations_sv.properties index ddc783842..f5dd3b8f0 100644 --- a/lang/strings/translations_sv.properties +++ b/lang/strings/translations_sv.properties @@ -1359,3 +1359,5 @@ configure=Konfigurera addConnection=Lägg till anslutning noCompatibleConnection=Ingen kompatibel anslutning hittades newCategory=Ny kategori +dockerComposeRestricted=Compose-projektet är begränsat av $NAME$ och kan inte ändras externt. Använd $NAME$ för att hantera detta compose-projekt. +restricted=Begränsad diff --git a/lang/strings/translations_tr.properties b/lang/strings/translations_tr.properties index d47e2b6f4..0f640a8dd 100644 --- a/lang/strings/translations_tr.properties +++ b/lang/strings/translations_tr.properties @@ -1359,3 +1359,5 @@ configure=Yapılandırma addConnection=Bağlantı ekle noCompatibleConnection=Uyumlu bağlantı bulunamadı newCategory=Yeni kategori +dockerComposeRestricted=Compose projesi $NAME$ tarafından kısıtlanmıştır ve harici olarak değiştirilemez. Bu compose projesini yönetmek için lütfen $NAME$ adresini kullanın. +restricted=Kısıtlı diff --git a/lang/strings/translations_zh.properties b/lang/strings/translations_zh.properties index 42424ae00..d1aa62384 100644 --- a/lang/strings/translations_zh.properties +++ b/lang/strings/translations_zh.properties @@ -1584,3 +1584,5 @@ configure=配置 addConnection=添加连接 noCompatibleConnection=未找到兼容连接 newCategory=新类别 +dockerComposeRestricted=该 compose 项目受$NAME$ 限制,不能从外部修改。请使用$NAME$ 管理此撰写项目。 +restricted=限制级 diff --git a/version b/version index c32b0ec5a..c844abad1 100644 --- a/version +++ b/version @@ -1 +1 @@ -16.1 +16.2-1