Skip to content

v0.15.14

Choose a tag to compare

@github-actions github-actions released this 11 Jun 08:39
· 24 commits to main since this release

What's Changed

Improved

  • External RDP/VNC sessions no longer freeze the window for 1.5 s on connect — launching FreeRDP blocked the GTK main thread with a sleep(1500ms) used to catch immediate failures (certificate/auth errors). The launcher now returns right after spawn and watches the process with a non-blocking 250 ms poll over the same 1.5 s window; early failures still close the tab, show the parsed FreeRDP error toast, and record the failure in history
  • Tray messages are now event-driven instead of polled — the main loop woke ~20×/second to try_recv() tray clicks even when idle, costing CPU and battery on laptops. Tray menu events (Linux ksni, macOS) now arrive over an async-channel awaited on the main context, so the loop only wakes on real clicks; tray handling is skipped entirely when the tray icon is disabled in settings
  • Secret backend detection in Settings is parallel and cached — probing KeePassXC, Bitwarden, 1Password, Passbolt, pass and secret-tool spawned 10+ CLI processes sequentially (1–5 s before statuses appeared). Probes now run in parallel scoped threads (latency = slowest probe) and the result is cached for 30 s, making a quick reopen of Settings instant; the result-delivery loop also no longer spins the main loop at 100% CPU while detection runs (idle source → 50 ms timer)
  • Connection history writes are debounced and off the main thread — every session start/end serialized and wrote history.toml inline on the GTK main thread (twice per session). Changes now mark history dirty and a flusher coalesces a 2 s burst into a single write on a background thread; pending changes are flushed on shutdown
  • One suggested action per dialog (GNOME HIG) — "Add Variable"/"Add Property" in the connection dialog's Data tab no longer compete with the dialog's primary action for the suggested style, and the tunnel wizard hides its "Next" footer button while the empty-state "New SSH Connection" call-to-action is shown

Dependencies

  • Added: async-channel 2.5.0 (event-driven tray message delivery)
  • Updated: crypto-primes 0.7.1→0.7.2

Installation

Flatpak (Recommended)

flatpak install flathub io.github.totoshko88.RustConn

Snap

sudo snap install rustconn

Debian/Ubuntu (.deb from this release)

sudo dpkg -i rustconn_0.15.14_amd64.deb
sudo apt-get install -f  # Install dependencies if needed

Fedora (.rpm from this release)

sudo dnf install rustconn-0.15.14-1.fc44.x86_64.rpm

AppImage

chmod +x RustConn-0.15.14-x86_64.AppImage
./RustConn-0.15.14-x86_64.AppImage

macOS (Homebrew)

brew tap totoshko88/rustconn
brew install rustconn
open $(brew --prefix)/opt/rustconn/RustConn.app

All dependencies (GTK4, libadwaita, VTE, Adwaita icons) are installed automatically.
Requires macOS 13 (Ventura) or later.

OBS Repositories

Packages available at: https://build.opensuse.org/package/show/home:totoshko88:rustconn/rustconn

# Debian 13 (Trixie)
echo 'deb http://download.opensuse.org/repositories/home:/totoshko88:/rustconn/Debian_13/ /' \
  | sudo tee /etc/apt/sources.list.d/rustconn.list
curl -fsSL https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/Debian_13/Release.key \
  | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/rustconn.gpg > /dev/null
sudo apt update && sudo apt install rustconn

# Ubuntu 24.04 LTS (Noble)
echo 'deb http://download.opensuse.org/repositories/home:/totoshko88:/rustconn/xUbuntu_24.04/ /' \
  | sudo tee /etc/apt/sources.list.d/rustconn.list
curl -fsSL https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/xUbuntu_24.04/Release.key \
  | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/rustconn.gpg > /dev/null
sudo apt update && sudo apt install rustconn

# Ubuntu 26.04 LTS (Resolute)
echo 'deb http://download.opensuse.org/repositories/home:/totoshko88:/rustconn/xUbuntu_26.04/ /' \
  | sudo tee /etc/apt/sources.list.d/rustconn.list
curl -fsSL https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/xUbuntu_26.04/Release.key \
  | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/rustconn.gpg > /dev/null
sudo apt update && sudo apt install rustconn

# Fedora 44
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/Fedora_44/home:totoshko88:rustconn.repo
sudo dnf install rustconn

# Fedora 43
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/Fedora_43/home:totoshko88:rustconn.repo
sudo dnf install rustconn

# openSUSE Tumbleweed
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/openSUSE_Tumbleweed/ rustconn
sudo zypper ref && sudo zypper in rustconn

# openSUSE Leap 16.0
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/openSUSE_Leap_16.0/ rustconn
sudo zypper ref && sudo zypper in rustconn

Arch Linux (AUR)

yay -S rustconn

FreeBSD (Ports)

pkg install rustconn

Full installation guide: https://github.com/totoshko88/RustConn/blob/main/docs/INSTALL.md