Skip to content

v0.19.22

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Aug 09:35

What's Changed

Fixed

  • KeePassXC "Don't save" mode did not unlock the database on demand, reporting credentials as missing (issue #273) — when the KDBX master password storage is set to "Don't save", credential resolution failed with a misleading "Variable Not Configured" dialog even when the variable and its KeePass entry were correctly configured. The actual problem was that the database password was not available in memory — there was no mechanism to prompt for it at connection time, and a successful "Check" in Settings did not keep the password for the session either. Three changes fix this: (1) when "Don't save" is selected and the user verifies the password in Settings, it is now kept in the runtime-only kdbx_password field for the remainder of the session (never persisted to disk or keyring); (2) if a connection needs a KeePass credential and no session password is available, the resolver returns a new KdbxLocked signal instead of failing with the wrong error; (3) the UI shows an on-demand "KeePass database is locked" dialog with a password entry, verifies the password against the database, stores it in memory for the session, and automatically retries the connection. Subsequent connections in the same session reuse the in-memory password without re-prompting. The password is forgotten when RustConn exits.

Improved

  • Sidebar search uses a cached search engine with result cachingfilter_connections no longer allocates a fresh SearchEngine on every keystroke. A DebouncedSearchEngine stored in ConnectionSidebar provides automatic result caching with TTL: repeated or backspace-retype queries return instantly from cache instead of recomputing fuzzy scores across the entire connection list. The cache is invalidated whenever connections are added, edited, deleted, or imported (via reload_sidebar), so results are never stale. For large connection databases (hundreds of entries), search-as-you-type is noticeably more responsive.

  • Command palette reuses its stored search engine instead of allocating per-modefilter_commands previously created a new SearchEngine::new() on each invocation even though CommandPaletteDialog already held a stored engine passed to every other mode. The redundant allocation is removed; filter_commands now receives the existing engine as a parameter.

  • Embedded RDP: suppressed unused_variables warning for frame_stats without gfx-h264 — the FrameStatistics variable in the RDP session loop is only used when the H.264 decode path is active. The existing #[cfg_attr(not(feature = "gfx-h264"), expect(unused_mut, ...))] annotation now also covers unused_variables, eliminating the warning when building with --features rdp-embedded alone.

  • Keyboard group dropdowns show what "Automatic" actually sends (issue #271) — the reporter confirmed Backspace works after 0.19.20, but Delete still does not on their device. The dropdown said Automatic with no indication that it puts a five-byte VT220 escape sequence (\e[3~) on the wire rather than the single byte the other two options name — a device that cannot parse escape sequences silently ignores it, and the user has no cue that Delete (^?) is what they need. The labels now read Automatic (^?) for Backspace and Automatic (\e[3~) for Delete, mirroring the parenthesised notation the non-default choices already use. The group description on both the SSH/MOSH and Telnet pages also changes from a generic "change what these keys send" to an explicit hint: devices that reject one default usually reject both, so the user knows to check Delete after fixing Backspace.

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.19.22_amd64.deb
sudo apt-get install -f  # Install dependencies if needed

Fedora (.rpm from this release)

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

AppImage

chmod +x RustConn-0.19.22-x86_64.AppImage
./RustConn-0.19.22-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