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_passwordfield 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 newKdbxLockedsignal 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 caching —
filter_connectionsno longer allocates a freshSearchEngineon every keystroke. ADebouncedSearchEnginestored inConnectionSidebarprovides 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 (viareload_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-mode —
filter_commandspreviously created a newSearchEngine::new()on each invocation even thoughCommandPaletteDialogalready held a stored engine passed to every other mode. The redundant allocation is removed;filter_commandsnow receives the existing engine as a parameter. -
Embedded RDP: suppressed
unused_variableswarning forframe_statswithoutgfx-h264— theFrameStatisticsvariable 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 coversunused_variables, eliminating the warning when building with--features rdp-embeddedalone. -
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.RustConnSnap
sudo snap install rustconnDebian/Ubuntu (.deb from this release)
sudo dpkg -i rustconn_0.19.22_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora (.rpm from this release)
sudo dnf install rustconn-0.19.22-1.fc44.x86_64.rpmAppImage
chmod +x RustConn-0.19.22-x86_64.AppImage
./RustConn-0.19.22-x86_64.AppImagemacOS (Homebrew)
brew tap totoshko88/rustconn
brew install rustconn
open $(brew --prefix)/opt/rustconn/RustConn.appAll 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 rustconnArch Linux (AUR)
yay -S rustconnFreeBSD (Ports)
pkg install rustconnFull installation guide: https://github.com/totoshko88/RustConn/blob/main/docs/INSTALL.md