Repository navigation
v0.23.5
What's Changed
Fixed
- Default
~/.ssh/configimport now actually imports under Flatpak — the "SSH Config" import source (which reads~/.ssh/configautomatically) reported success but added nothing, while picking the same file by hand worked (reported on #368). Root cause is the Flatpak sandbox: the manifest grants only--filesystem=home/.ssh:ro(not full--filesystem=home), so the host~/.sshis reachable at its real path, but$HOME— and thereforedirs::home_dir()— points at the per-app sandbox home~/.var/app/io.github.totoshko88.RustConn.SshConfigImporter::default_paths()resolved~/.ssh/configthrough that sandbox home and found nothing, whereas the manual file picker goes through the document portal, which grants the exact file the user chose. The importer now probes both roots — the sandbox$HOME/.sshand the real host~/.sshrecovered via a newflatpak::host_home_dir()helper (which strips a trailing.var/app/<app-id>segment from the sandbox home). Outside Flatpak behaviour is byte-for-byte unchanged. The two code paths' differing group names ("SSH Config Import" vs the manual "config Import") were only cosmetic and are untouched. (#368) - Import no longer claims success when it found nothing — an import that produced zero connections, zero groups and no errors or warnings still showed "Successfully imported 0 connection(s)", which is what made the broken default SSH-config import read as working. That case now says "Nothing was imported — no connections were found in the source." so an empty import is never mistaken for a successful one. (#368)
- Header bar height now matches other GNOME apps — the top bar was visibly taller than every other GNOME application and out of step with the platform (reported on #369). The icon-only header buttons carried a
min-height: 44pxfloor — the HIG Pointer & Touch touch tap-target — forcing the wholeAdwHeaderBartaller than native, since the bar sizes to its tallest child and libadwaita's own flat header buttons are 34px. GTK CSS cannot distinguish a pointer session from a touch one, so the 44px floor regressed the common desktop case. The.header-icon-buttonfloor is now 34px (libadwaita's native size), a comfortable pointer target that matches the surrounding window chrome; deliberate compact (window.compact-manual) still trims to 28px and macOS keeps 28px. CSS-only plus comment updates;check-css.shgreen and a GUI smoke confirmed a clean start. (#369) - The Shell button stays as an icon on a narrow window instead of disappearing — a UI/UX pass on #369 found the local-shell button was dropped entirely by the narrow (≤ 600sp) breakpoint, even though there was room for its icon. Launching a local shell is a primary action and should not vanish just because the window is narrow.
win.local-shellis removed from the narrow breakpoint's hidden set, and the button now shrinks to icon-only there: its "Shell" text label collapses while the terminal icon stays. The same icon-only treatment already applies in compact mode. The collapse is width-driven (a.narrowwindow class toggled on the breakpoint) so it works regardless of the compact preference, and the narrow minimum-width floor now reserves room for the icon. - Auto-compact no longer trips on a normal-height window — auto-compact engaged when the window was ≤ 800px tall, which flipped an ordinary 1080p laptop into compact chrome the moment its window was tiled to half-height, with no action from the user. GNOME HIG adapts primarily on width, so the height trigger is lowered to 600px (a genuine short-screen safety net) and width (≤ 900px) stays the main criterion.
- The stale "import 0 = success" unit test is fixed —
format_summary's empty-result branch was changed to say "Nothing was imported…" (above), but its unit test still asserted the old "Successfully imported 0 connection(s)" wording and failed. The test now asserts the new message.
Changed
- Compact-interface settings polish — in Settings → Interface, "Compact automatically on small windows" is now greyed out while "Compact interface" (manual) is on, because manual compact already forces it everywhere and the auto toggle could change nothing — a GNOME HIG dependent-row relationship that two independent-looking switches hid. The "Compact interface" subtitle drops the confusing "useful on … macOS and KDE" phrasing for a plain description. The local-shell action also gains a discoverable
Ctrl+Shift+Ddefault accelerator entry (already in the keybinding registry; surfaced in the Keyboard Shortcuts overlay). - Touch-safe compact header targets — compact-mode header and sidebar-bottom buttons now keep a 24px (HIG minimum) tap target under auto-compact (which may be a touch convertible) and only drop to the denser 20px under deliberate
window.compact-manual, mirroring the existing 34/28px split on the regular header buttons.
Dependencies
- Updated: serde_spanned 1.1.1 → 1.1.2, toml 1.1.6 → 1.1.7, toml_datetime 1.1.1 → 1.1.2, toml_edit 0.25.15 → 0.25.16, toml_parser 1.1.3 → 1.1.4, toml_writer 1.1.2 → 1.1.3, zerocopy 0.8.61 → 0.8.62, zerocopy-derive 0.8.61 → 0.8.62. All semver-compatible patch bumps (the TOML parser family and the zerocopy pair); no security advisories affected (
cargo deny check advisoriesclean). CLI download versions all current (TigerVNC pinned at 1.16.2). picky-krb 0.12.5 remains held back for the same reason as 0.23.1–0.23.4: itsGssApiMessageErrorvariant breaks the pinned sspi 0.21.3, which does not match it exhaustively, so picky-krb stays at 0.12.4.
Installation
Flatpak (Recommended)
flatpak install flathub io.github.totoshko88.RustConnSnap
sudo snap install rustconnDebian/Ubuntu (.deb from this release)
sudo dpkg -i rustconn_0.23.5_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora (.rpm from this release)
sudo dnf install rustconn-0.23.5-1.fc44.x86_64.rpmAppImage
chmod +x RustConn-0.23.5-x86_64.AppImage
./RustConn-0.23.5-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
Verifying your download
Every binary on this release (deb, rpm, AppImage, Flatpak) is covered two ways.
Plain checksums — download SHA256SUMS alongside the asset, then:
sha256sum -c SHA256SUMSSigned build provenance (SLSA, via Sigstore) — proves the file was built by this
workflow from this commit:
gh attestation verify RustConn-0.23.5-x86_64.AppImage --repo totoshko88/RustConn(The snap is signed by the Snap Store; the macOS build is delivered via the Homebrew tap.)