Skip to content

Commit

Permalink
[release]
Browse files Browse the repository at this point in the history
  • Loading branch information
crschnick committed Dec 5, 2024
1 parent 9e8744a commit aff06ee
Show file tree
Hide file tree
Showing 27 changed files with 132 additions and 53 deletions.
11 changes: 7 additions & 4 deletions app/src/main/java/io/xpipe/app/core/AppCache.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.xpipe.app.core;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.xpipe.app.issue.ErrorEvent;
import io.xpipe.app.util.JsonConfigHelper;
import io.xpipe.core.util.JacksonMapper;
Expand Down Expand Up @@ -48,8 +49,9 @@ public static <T> T getNonNull(String key, Class<?> type, Supplier<T> notPresent
var path = getPath(key);
if (Files.exists(path)) {
try {
var tree = JsonConfigHelper.readRaw(path);
if (tree.isMissingNode() || tree.isNull()) {
ObjectMapper o = JacksonMapper.getDefault();
var tree = o.readTree(path.toFile());
if (tree == null || tree.isMissingNode() || tree.isNull()) {
FileUtils.deleteQuietly(path.toFile());
return notPresent.get();
}
Expand All @@ -75,8 +77,9 @@ public static boolean getBoolean(String key, boolean notPresent) {
var path = getPath(key);
if (Files.exists(path)) {
try {
var tree = JsonConfigHelper.readRaw(path);
if (!tree.isBoolean()) {
ObjectMapper o = JacksonMapper.getDefault();
var tree = o.readTree(path.toFile());
if (tree == null || !tree.isBoolean()) {
FileUtils.deleteQuietly(path.toFile());
return notPresent;
}
Expand Down
47 changes: 47 additions & 0 deletions dist/changelogs/13.4.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
## VMs

- There is now support for KVM/QEMU virtual machines that can be accessed via the libvirt CLI tools `virsh`. This includes support for other driver URLs as well aside from KVM and QEMU. This integration is available starting from the homelab plan and can be used for free for two weeks after this release using the new release preview
- You can now override a VM IP if you're using an advanced networking setup where the default IP detection is not suitable
- Fix remote VM SSH connections not being able to use the keys and identities from the local system
- There is now a new restart button for containers and VMs

## File browser

- There is now a new option in the context menu of a tab to pin it, allowing for having a split view with two different file systems
- There is now the option to dock terminals in the file browser (this is only available on Windows for now). You can disable this in Settings -> File browser -> Terminal docking if you don't like it
- The previous system history tab is now always shown
- You can now change the default download location for the move to downloads button

## Shell sessions

Many improvements have been implemented for reusability of shell sessions running in the background. Whenever you access a system or a parent system, XPipe will connect to it just as before but keep this session open in the background for some time, under the assumption that you will typically perform multiple actions shortly afterward. This will improve the speed of many actions and also results in less authentication prompts when you are using something like 2FA.

## Terminals

- Closing a terminal tab/window while the session is loading will now cancel the loading process in XPipe as well
- A newly opened terminal will now regain focus after any password prompt was entered in xpipe

## Security updates

There's now a new mechanism in place for checking for security updates separately from the normal update check. This is important going forward, to be able to act quickly when any security patch is published, so that all users have the possibility to get notified even if they don't follow announcements on the GitHub repo or on Discord. You can also disable this functionality in the settings if you want.

## Other

- The application style has been reworked
- The settings menu now shows a restart button when a setting has been changed that requires a restart to apply
- There is now an intro to scripts to provide some more information before using scripts
- Add ability to enable agent forwarding when using the SSH-Agent for identities
- The .rpm releases are now signed

## Fixes

- Fix Proxmox detection not working when not logging in as root
- Fix tunnels not closing properly when having to be closed forcefully
- Fix vmware integration failing when files other than .vmx were in the VM directories
- Fix Tabby not launching properly on Windows
- Fix SSH and docker issues with home assistant systems
- Fix git readme not showing connections in nested children categories
- Fix Windows Terminal Preview and Canary not being recognized
- Fix style issues with the mocha theme
- Fix color contrast for some themes
- Fix system dark mode changes not being applied if they were changed while XPipe was not running
5 changes: 5 additions & 0 deletions dist/changelogs/13.4.2_incremental.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- Rework Proxmox VNC setup action name and explanations to be more clear
- Fix Proxmox VNC setup action working with outdated data when the VM config was changed externally
- Fix Terminal recognition failing on some macOS systems
- Fix RDP client recognition failing on macOS
- Fix corrupted caches not being cleaned properly
1 change: 1 addition & 0 deletions lang/app/strings/translations_da.properties
Original file line number Diff line number Diff line change
Expand Up @@ -561,3 +561,4 @@ groupName=Gruppens navn
chmodPermissions=Nye tilladelser
editFilesWithDoubleClick=Rediger filer med dobbeltklik
editFilesWithDoubleClickDescription=Når det er aktiveret, vil dobbeltklik på filer åbne dem direkte i din teksteditor i stedet for at vise kontekstmenuen.
userName=Brugernavn
1 change: 1 addition & 0 deletions lang/app/strings/translations_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -563,3 +563,4 @@ groupName=Gruppenname
chmodPermissions=Neue Berechtigungen
editFilesWithDoubleClick=Dateien mit Doppelklick bearbeiten
editFilesWithDoubleClickDescription=Wenn diese Funktion aktiviert ist, werden Dateien durch einen Doppelklick direkt in deinem Texteditor geöffnet, anstatt das Kontextmenü anzuzeigen.
userName=Benutzername
1 change: 1 addition & 0 deletions lang/app/strings/translations_es.properties
Original file line number Diff line number Diff line change
Expand Up @@ -542,3 +542,4 @@ groupName=Nombre del grupo
chmodPermissions=Nuevos permisos
editFilesWithDoubleClick=Editar archivos con doble clic
editFilesWithDoubleClickDescription=Cuando está activado, al hacer doble clic en los archivos se abrirán directamente en tu editor de texto en lugar de mostrar el menú contextual.
userName=Nombre de usuario
1 change: 1 addition & 0 deletions lang/app/strings/translations_fr.properties
Original file line number Diff line number Diff line change
Expand Up @@ -542,3 +542,4 @@ groupName=Nom du groupe
chmodPermissions=Nouvelles autorisations
editFilesWithDoubleClick=Éditer des fichiers avec un double clic
editFilesWithDoubleClickDescription=Lorsque cette option est activée, un double-clic sur les fichiers les ouvrira directement dans ton éditeur de texte au lieu d'afficher le menu contextuel.
userName=Nom d'utilisateur
1 change: 1 addition & 0 deletions lang/app/strings/translations_it.properties
Original file line number Diff line number Diff line change
Expand Up @@ -542,3 +542,4 @@ groupName=Nome del gruppo
chmodPermissions=Nuovi permessi
editFilesWithDoubleClick=Modifica i file con un doppio clic
editFilesWithDoubleClickDescription=Se abilitato, facendo doppio clic sui file, questi verranno aperti direttamente nell'editor di testo invece di mostrare il menu contestuale.
userName=Nome utente
1 change: 1 addition & 0 deletions lang/app/strings/translations_ja.properties
Original file line number Diff line number Diff line change
Expand Up @@ -542,3 +542,4 @@ groupName=グループ名
chmodPermissions=新しいパーミッション
editFilesWithDoubleClick=ダブルクリックでファイルを編集する
editFilesWithDoubleClickDescription=有効にすると、ファイルをダブルクリックしてもコンテキストメニューが表示されず、そのままテキストエディタで開くことができる。
userName=ユーザー名
1 change: 1 addition & 0 deletions lang/app/strings/translations_nl.properties
Original file line number Diff line number Diff line change
Expand Up @@ -542,3 +542,4 @@ groupName=Groepsnaam
chmodPermissions=Nieuwe machtigingen
editFilesWithDoubleClick=Bestanden bewerken met dubbelklikken
editFilesWithDoubleClickDescription=Als deze optie is ingeschakeld, zal dubbelklikken op bestanden deze direct openen in je tekstverwerker in plaats van het contextmenu te tonen.
userName=Gebruikersnaam
1 change: 1 addition & 0 deletions lang/app/strings/translations_pt.properties
Original file line number Diff line number Diff line change
Expand Up @@ -542,3 +542,4 @@ groupName=Nome do grupo
chmodPermissions=Novas permissões
editFilesWithDoubleClick=Edita ficheiros com um duplo clique
editFilesWithDoubleClickDescription=Quando ativado, fazer duplo clique em ficheiros abre-os diretamente no teu editor de texto em vez de mostrar o menu de contexto.
userName=Nome de utilizador
1 change: 1 addition & 0 deletions lang/app/strings/translations_ru.properties
Original file line number Diff line number Diff line change
Expand Up @@ -542,3 +542,4 @@ groupName=Название группы
chmodPermissions=Новые разрешения
editFilesWithDoubleClick=Редактирование файлов с помощью двойного клика
editFilesWithDoubleClickDescription=Когда эта функция включена, двойной щелчок по файлам будет сразу открывать их в твоем текстовом редакторе, а не показывать контекстное меню.
userName=Имя пользователя
1 change: 1 addition & 0 deletions lang/app/strings/translations_tr.properties
Original file line number Diff line number Diff line change
Expand Up @@ -543,3 +543,4 @@ groupName=Grup adı
chmodPermissions=Yeni izinler
editFilesWithDoubleClick=Dosyaları çift tıklama ile düzenleme
editFilesWithDoubleClickDescription=Etkinleştirildiğinde, dosyalara çift tıklamak içerik menüsünü göstermek yerine onları doğrudan metin düzenleyicinizde açacaktır.
userName=Kullanıcı Adı
1 change: 1 addition & 0 deletions lang/app/strings/translations_zh.properties
Original file line number Diff line number Diff line change
Expand Up @@ -542,3 +542,4 @@ groupName=组名
chmodPermissions=新权限
editFilesWithDoubleClick=双击编辑文件
editFilesWithDoubleClickDescription=启用后,双击文件将直接在文本编辑器中打开,而不是显示上下文菜单。
userName=用户名
9 changes: 5 additions & 4 deletions lang/proc/strings/translations_da.properties
Original file line number Diff line number Diff line change
Expand Up @@ -347,16 +347,16 @@ rdpUsernameDescription=Til brugeren for at logge ind som
addressDescription=Hvor skal man oprette forbindelse til
rdpAdditionalOptions=Yderligere RDP-muligheder
rdpAdditionalOptionsDescription=Rå RDP-muligheder, der skal inkluderes, formateret på samme måde som i .rdp-filer
proxmoxVncConfirmTitle=VNC-opsætning
proxmoxVncConfirmHeader=Vil du aktivere VNC for den virtuelle maskine?
proxmoxVncConfirmContent=Dette opsætter en tilgængelig VNC-server og genstarter den virtuelle maskine. Du skal så vente, indtil maskinen er startet op igen, før du opretter forbindelse.
proxmoxVncConfirmTitle=VNC adgang
proxmoxVncConfirmHeader=Vil du aktivere VNC-adgang for VM'en?
proxmoxVncConfirmContent=Dette vil aktivere lokal VNC-klientadgang i VM-konfigurationsfilen og genstarte den virtuelle maskine.
dockerContext.displayName=Docker-kontekst
dockerContext.displayDescription=Interagerer med containere i en bestemt kontekst
containerActions=Container-handlinger
vmActions=VM-handlinger
dockerContextActions=Kontekst-handlinger
k8sPodActions=Pod-handlinger
openVnc=Sæt VNC op
openVnc=Aktiver VNC-adgang
commandGroup.displayName=Kommandogruppe
commandGroup.displayDescription=Grupper tilgængelige kommandoer for et system
serial.displayName=Seriel forbindelse
Expand Down Expand Up @@ -431,3 +431,4 @@ libvirt=libvirt-domæner
customIp=Brugerdefineret IP
customIpDescription=Tilsidesæt standard lokal VM IP-registrering, hvis du bruger avanceret netværk
automaticallyDetect=Registrerer automatisk
documentation=Dokumenter
9 changes: 5 additions & 4 deletions lang/proc/strings/translations_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -325,16 +325,16 @@ rdpUsernameDescription=An Benutzer, der sich anmelden soll als
addressDescription=Wohin soll die Verbindung gehen?
rdpAdditionalOptions=Zusätzliche RDP-Optionen
rdpAdditionalOptionsDescription=Rohe RDP-Optionen, die genauso formatiert sind wie in .rdp-Dateien
proxmoxVncConfirmTitle=VNC-Einrichtung
proxmoxVncConfirmHeader=Willst du VNC für die virtuelle Maschine aktivieren?
proxmoxVncConfirmContent=Dadurch wird ein zugänglicher VNC-Server eingerichtet und die virtuelle Maschine neu gestartet. Du solltest dann warten, bis die Maschine wieder hochgefahren ist, bevor du eine Verbindung herstellst.
proxmoxVncConfirmTitle=VNC-Zugang
proxmoxVncConfirmHeader=Willst du den VNC-Zugriff für die VM aktivieren?
proxmoxVncConfirmContent=Dadurch wird der lokale VNC-Client-Zugriff in der VM-Konfigurationsdatei aktiviert und die virtuelle Maschine neu gestartet.
dockerContext.displayName=Docker-Kontext
dockerContext.displayDescription=Interaktion mit Containern, die sich in einem bestimmten Kontext befinden
containerActions=Container-Aktionen
vmActions=VM-Aktionen
dockerContextActions=Kontextbezogene Aktionen
k8sPodActions=Pod-Aktionen
openVnc=VNC einrichten
openVnc=VNC-Zugang aktivieren
commandGroup.displayName=Befehlsgruppe
commandGroup.displayDescription=Verfügbare Befehle für ein System gruppieren
serial.displayName=Serielle Verbindung
Expand Down Expand Up @@ -409,3 +409,4 @@ libvirt=libvirt-Domänen
customIp=Benutzerdefinierte IP
customIpDescription=Überschreibe die Standard-IP-Erkennung der lokalen VM, wenn du ein erweitertes Netzwerk verwendest
automaticallyDetect=Automatisch erkennen
documentation=Docs
10 changes: 6 additions & 4 deletions lang/proc/strings/translations_en.properties
Original file line number Diff line number Diff line change
Expand Up @@ -323,16 +323,17 @@ rdpUsernameDescription=To user to log in as
addressDescription=Where to connect to
rdpAdditionalOptions=Additional RDP options
rdpAdditionalOptionsDescription=Raw RDP options to include, formatted the same as in .rdp files
proxmoxVncConfirmTitle=VNC setup
proxmoxVncConfirmHeader=Do you want to enable VNC for the virtual machine?
proxmoxVncConfirmContent=This will set up an accessible VNC server and restart the virtual machine. You should then wait until the machine has started up again before connecting.
proxmoxVncConfirmTitle=VNC access
#force
proxmoxVncConfirmHeader=Do you want to enable VNC access for the VM?
proxmoxVncConfirmContent=This will enable direct VNC client access in the VM config file and restart the virtual machine.
dockerContext.displayName=Docker context
dockerContext.displayDescription=Interact with containers located in a specific context
containerActions=Container actions
vmActions=VM actions
dockerContextActions=Context actions
k8sPodActions=Pod actions
openVnc=Set up VNC
openVnc=Enable VNC access
commandGroup.displayName=Command group
commandGroup.displayDescription=Group available commands for a system
serial.displayName=Serial connection
Expand Down Expand Up @@ -407,3 +408,4 @@ libvirt=libvirt domains
customIp=Custom IP
customIpDescription=Override the default local VM IP detection if you use advanced networking
automaticallyDetect=Automatically detect
documentation=Docs
9 changes: 5 additions & 4 deletions lang/proc/strings/translations_es.properties
Original file line number Diff line number Diff line change
Expand Up @@ -321,16 +321,16 @@ rdpUsernameDescription=Para que el usuario inicie sesión como
addressDescription=Dónde conectarse
rdpAdditionalOptions=Opciones RDP adicionales
rdpAdditionalOptionsDescription=Opciones RDP en bruto a incluir, con el mismo formato que en los archivos .rdp
proxmoxVncConfirmTitle=Configuración VNC
proxmoxVncConfirmHeader=¿Quieres activar VNC para la máquina virtual?
proxmoxVncConfirmContent=Esto configurará un servidor VNC accesible y reiniciará la máquina virtual. Deberás esperar a que la máquina se haya reiniciado antes de conectarte.
proxmoxVncConfirmTitle=Acceso VNC
proxmoxVncConfirmHeader=¿Quieres habilitar el acceso VNC para la máquina virtual?
proxmoxVncConfirmContent=Esto habilitará el acceso local del cliente VNC en el archivo de configuración de la máquina virtual y la reiniciará.
dockerContext.displayName=Contexto Docker
dockerContext.displayDescription=Interactúa con contenedores situados en un contexto específico
containerActions=Acciones del contenedor
vmActions=Acciones VM
dockerContextActions=Acciones contextuales
k8sPodActions=Acciones del pod
openVnc=Configurar VNC
openVnc=Habilitar el acceso VNC
commandGroup.displayName=Grupo de comandos
commandGroup.displayDescription=Agrupa los comandos disponibles para un sistema
serial.displayName=Conexión en serie
Expand Down Expand Up @@ -405,3 +405,4 @@ libvirt=dominios libvirt
customIp=IP personalizada
customIpDescription=Anula la detección por defecto de la IP local de la VM si utilizas una red avanzada
automaticallyDetect=Detectar automáticamente
documentation=Docs
9 changes: 5 additions & 4 deletions lang/proc/strings/translations_fr.properties
Original file line number Diff line number Diff line change
Expand Up @@ -321,16 +321,16 @@ rdpUsernameDescription=A l'utilisateur de se connecter en tant que
addressDescription=Où se connecter
rdpAdditionalOptions=Options RDP supplémentaires
rdpAdditionalOptionsDescription=Options RDP brutes à inclure, formatées de la même manière que dans les fichiers .rdp
proxmoxVncConfirmTitle=Configuration de VNC
proxmoxVncConfirmHeader=Veux-tu activer VNC pour la machine virtuelle ?
proxmoxVncConfirmContent=Cela permet de mettre en place un serveur VNC accessible et de redémarrer la machine virtuelle. Tu dois alors attendre que la machine ait redémarré avant de te connecter.
proxmoxVncConfirmTitle=Accès VNC
proxmoxVncConfirmHeader=Veux-tu activer l'accès VNC pour la VM ?
proxmoxVncConfirmContent=Cela activera l'accès local du client VNC dans le fichier de configuration de la VM et redémarrera la machine virtuelle.
dockerContext.displayName=Contexte Docker
dockerContext.displayDescription=Interagir avec des conteneurs situés dans un contexte spécifique
containerActions=Actions du conteneur
vmActions=Actions VM
dockerContextActions=Actions contextuelles
k8sPodActions=Actions de pods
openVnc=Configurer VNC
openVnc=Activer l'accès VNC
commandGroup.displayName=Groupe de commande
commandGroup.displayDescription=Groupe de commandes disponibles pour un système
serial.displayName=Connexion série
Expand Down Expand Up @@ -405,3 +405,4 @@ libvirt=domaines libvirt
customIp=IP personnalisé
customIpDescription=Remplacer la détection de l'IP locale de la VM par défaut si tu utilises la mise en réseau avancée
automaticallyDetect=Détecter automatiquement
documentation=Docs
9 changes: 5 additions & 4 deletions lang/proc/strings/translations_it.properties
Original file line number Diff line number Diff line change
Expand Up @@ -321,16 +321,16 @@ rdpUsernameDescription=All'utente di accedere come
addressDescription=Dove connettersi
rdpAdditionalOptions=Opzioni RDP aggiuntive
rdpAdditionalOptionsDescription=Opzioni RDP grezze da includere, formattate come nei file .rdp
proxmoxVncConfirmTitle=Configurazione di VNC
proxmoxVncConfirmHeader=Vuoi abilitare VNC per la macchina virtuale?
proxmoxVncConfirmContent=In questo modo verrà configurato un server VNC accessibile e verrà riavviata la macchina virtuale. Dovrai quindi attendere che la macchina si sia riavviata prima di connetterti.
proxmoxVncConfirmTitle=Accesso VNC
proxmoxVncConfirmHeader=Vuoi abilitare l'accesso VNC per la macchina virtuale?
proxmoxVncConfirmContent=In questo modo si abilita l'accesso al client VNC locale nel file di configurazione della macchina virtuale e si riavvia la macchina virtuale.
dockerContext.displayName=Contesto Docker
dockerContext.displayDescription=Interagire con contenitori situati in un contesto specifico
containerActions=Azioni del contenitore
vmActions=Azioni della VM
dockerContextActions=Azioni contestuali
k8sPodActions=Azioni del pod
openVnc=Configurare VNC
openVnc=Abilita l'accesso a VNC
commandGroup.displayName=Gruppo di comando
commandGroup.displayDescription=Gruppo di comandi disponibili per un sistema
serial.displayName=Connessione seriale
Expand Down Expand Up @@ -405,3 +405,4 @@ libvirt=domini libvirt
customIp=IP personalizzato
customIpDescription=Sovrascrive il rilevamento dell'IP locale predefinito della VM se utilizzi una rete avanzata
automaticallyDetect=Rileva automaticamente
documentation=Documenti
9 changes: 5 additions & 4 deletions lang/proc/strings/translations_ja.properties
Original file line number Diff line number Diff line change
Expand Up @@ -321,16 +321,16 @@ rdpUsernameDescription=としてログインする
addressDescription=接続先
rdpAdditionalOptions=RDPの追加オプション
rdpAdditionalOptionsDescription=.rdpファイルと同じ書式で、RDPの生オプションを含める。
proxmoxVncConfirmTitle=VNCのセットアップ
proxmoxVncConfirmHeader=仮想マシンのVNCを有効にするか
proxmoxVncConfirmContent=これでアクセス可能なVNCサーバーがセットアップされ、仮想マシンが再起動する。その後、マシンが再び起動するまで待ってから接続する
proxmoxVncConfirmTitle=VNCアクセス
proxmoxVncConfirmHeader=VMのVNCアクセスを有効にするか
proxmoxVncConfirmContent=これにより、VM設定ファイルでローカルVNCクライアントアクセスが有効になり、仮想マシンが再起動する
dockerContext.displayName=Dockerコンテキスト
dockerContext.displayDescription=特定のコンテキストにあるコンテナと対話する
containerActions=コンテナアクション
vmActions=VMアクション
dockerContextActions=コンテキストアクション
k8sPodActions=ポッドアクション
openVnc=VNCを設定する
openVnc=VNCアクセスを有効にする
commandGroup.displayName=コマンドグループ
commandGroup.displayDescription=システムで使用可能なコマンドをグループ化する
serial.displayName=シリアル接続
Expand Down Expand Up @@ -405,3 +405,4 @@ libvirt=libvirt ドメイン
customIp=カスタムIP
customIpDescription=アドバンスドネットワーキングを使用している場合、デフォルトのローカルVM IP検出をオーバーライドする。
automaticallyDetect=自動的に検出する
documentation=ドキュメント
Loading

0 comments on commit aff06ee

Please sign in to comment.