v0.16.1
What's Changed
Improved
- Settings dialog GNOME HIG pass — fixes from a HIG audit of the preferences dialog:
- secret fields (Bitwarden master password / client secret, 1Password token, Passbolt passphrase, KeePass database password) migrated from
GtkPasswordEntry-in-a-row toadw::PasswordEntryRow(built-in peek icon, caps-lock warning, focus on row click) - highlight-rules editor rebuilt: one expandable row per rule with proper
EntryRows, enable switch and delete button — replaces the raw entry grid inside a nested scrolled area (scrolling-inside-scrolling anti-pattern); rule name/pattern are reflected live in the row title/subtitle - rows with suffix controls (language, startup action, keybinding rows, SSH key rows, cloud-sync import) are now activatable via the row itself — keyboard and touch users no longer have to hit the small suffix widget; "Add SSH Key" row previously did nothing when clicked
- "Reset All to Defaults" for keyboard shortcuts now asks for confirmation before wiping every customized shortcut
- "Restart to apply" after a settings restore is a dialog with a "Quit now" option instead of a transient toast (persistent state must not auto-dismiss)
- backup/restore failures caused by an inaccessible configuration directory are now shown to the user instead of only being logged
- removed extra
suggested-actionstyling from inline Add/Import buttons (one suggested action per dialog); error dialog headings unified to sentence case ("Backup failed", "Restore failed"); the "ZIP archives" file-filter name is now translatable
- secret fields (Bitwarden master password / client secret, 1Password token, Passbolt passphrase, KeePass database password) migrated from
Fixed
-
Settings dialog took 5+ seconds to appear with Bitwarden backend (flatpak) — the Secrets tab's keyring auto-unlock chain (
bw status/bw unlock/bw sync, each a 1–3 s Node.js cold start in the sandbox) was scheduled withglib::spawn_future, which runs on the GTK main context, not a worker thread — the dialog was mapped but its first frame waited until the whole chain finished. All blocking secret-CLI and keyring calls in the settings dialog (and the SSH-agent probe in the connection dialog) now run viagio::spawn_blockingon a real worker thread; measured first-frame time in flatpak dropped from ~5.3 s to the normal ~150 ms -
UI froze for seconds right after startup with Bitwarden backend (flatpak) —
resolve_bw_cmd()probes CLI candidates by runningbw --version, a Node.js cold start that takes 1–3 s inside the flatpak sandbox, and it ran on the GTK main thread during the startup idle handler. Clicking anything (e.g. opening Settings) during that window appeared to hang. The probe now runs on the background auto-unlock thread; the result is cached process-wide as before -
Sidebar context menu dismissed on deeply nested rows (KDE Plasma) (#157) — follow-up to the 0.16.0 fix: on rows at nesting level 3+ the menu opened via the ListView-level fallback and was cancelled by KWin ~45 ms later; the deferred
autohide=trueretry could not re-acquire a grab because its input serial was stale. Fallback- and keyboard-invoked menus now take the grab immediately (within the triggering event), and pointer-invoked menus no longer move keyboard focus into the menu (which itself triggered the compositor dismissal)
Installation
Flatpak (Recommended)
flatpak install flathub io.github.totoshko88.RustConnSnap
sudo snap install rustconnDebian/Ubuntu (.deb from this release)
sudo dpkg -i rustconn_0.16.1_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora (.rpm from this release)
sudo dnf install rustconn-0.16.1-1.fc44.x86_64.rpmAppImage
chmod +x RustConn-0.16.1-x86_64.AppImage
./RustConn-0.16.1-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