## Terminal docking

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:

![Dock](https://xpipe.io/assets/images/BlogPage/dock.png)

Here is a Windows Terminal instance with 4 split tabs that were launched through the split terminal feature of XPipe 20:

![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. You can also minimize the terminal normally, plus also toggle the terminal with the terminal dock button that will show up at the bottom right when a terminal is active:

![Dock toggle](https://xpipe.io/assets/images/BlogPage/dock-toggle.png)

If you want to disable the terminal docking completely, you can do so in the settings menu:

![Dock setting](https://xpipe.io/assets/images/BlogPage/dock-setting.png)

## Cisco switch integration

There is now a new integration for Cisco switches. It will automatically detect when you connect to any device running Cisco IOS and will add entries for each available port:

![Switch](https://xpipe.io/assets/images/BlogPage/switch.png)

Searching for available connections on a cisco device which was added via SSH should make the network switch ports show up. From the interface you can then:
- See the status of all ports and refresh them at any time
- Filter out irrelevant ports
- Open / shut / reset ports
- Monitor individual interfaces for accumulated errors with the built-in ability to clear counters
- Restart the device

This integration will be available in the Professional plan, but is also available for free for a few weeks after release. If the switch integration is well-received, support can also be expanded to other vendors and devices in the future.

## Proxmox improvements

- Add full support for Proxmox container networking. They now support services and tunnels in addition to normal VMs:

![PCT](https://xpipe.io/assets/images/BlogPage/pct-networking.png)

- Add support to open VMs with virt-viewer/remote-viewer via SPICE

- The dashboard service now automatically determines whether it actually needs to be tunneled to localhost or not. This improves handling with the HTTPS certificate. You can refresh the Proxmox installation entry to apply these changes

![Dashboard](https://xpipe.io/assets/images/BlogPage/pve-dashboard.png)

## Scripting rework

The scripting system has been completely reworked with the goal of becoming simpler and more powerful at the same time.

- You can now add custom script sources from an external URLs, e.g. a git repository. These source entries can then be used to quickly add script entries to xpipe automatically via an import functionality. It also supports fetching remote script files directory via HTTP urls if needed.

![Script Source](https://xpipe.io/assets/images/BlogPage/script-source.png)

![Script Ref](https://xpipe.io/assets/images/BlogPage/script-ref.png)

- The script handling for different shell types has been improved. You can now run scripts on a remote system independently of the login shell type as long as the specified shell is installed on the system. This means that you can run for example zsh scripts now on any system with a bash login shell without issues.

- Scripts groups were removed as they didn't provide a lot of value but made the organization more complicated than it needed to be.

## Sync improvements

- Add option to change the sync frequency for the git sync to once per session or fully manual. This reduces the amount of pushed commits and gives more control on how and when changes are synced. Multiple commits are also squashed together here when pushed
- The git commit messages now show the actual names of deleted entries instead of just IDs
- Add support to sync to a plain local directory without requiring a git repository
- 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
- Replace various old icons with more modern variants
- Add option to open AWS web dashboard for an AWS CLI profile from XPipe
- Incomplete VM entries can now be used for services and tunnels
- Improve serial support across the board
- Add support to automatically wait in terminal until serial port is connected
- Creating a new category will now automatically focus the text field to rename it
- Add support for Yakuake terminal
- Add support for virt-viewer as a VNC client
- Improve fallback behaviour when local shell failed to start
- Improve handling of workspace creation to not require an immediate restart
- Add automatic detection feature for the use gateway setting for VMs
- The WinSCP open action can now automatically generate .ppk keys if required
- Add support for CoolRetroTerm

## Fixes

- Fix docker refresh action taking very long when compose projects were present
- Fix ordering for some child connections being random after a restart
- Fix mstsc certificates trust status not persisting for tunneled RDP connections
- 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
- Fix terminal session titles not applying for Konsole
- Fix rbash shell detection not working
- Fix SFTP failing with files with single quotes in their name
- Fix WinSCP open action requiring an existing ppk key and only working with external key files, not in-place keys
- Fix batch mode selection not working for incomplete connections, like newly added VMs without credentials
- Fix batch action confirmation setting requiring a double confirmation for each individual connection
- Fix hibernation behavior setting not applying when locking the system
- Fix vscode-based editors not working when cmd.exe was disabled on the system
- Fix various performance issues
