Repository navigation
v0.23.11
What's Changed
Fixed
- Opening a Local Shell as the second pane of a fresh RDP split no longer crashes — splitting a connected RDP (or SSH) session and then choosing Local Shell for the empty pane crashed the process with SIGSEGV. The Local Shell path is the only one that spawns a new VTE terminal and reparents it into the pane in a single gesture (
move_session_to_panel→set_panel_content, whichunparents the widget and re-appends it under a fresh overlay); the Select Tab paths move an already-settled widget. Immediately after that move, the handler restored the host tab and grabbed focus on the just-reparented terminal in the same main-loop tick, racing GTK's own teardown of the old parent's surface: GTK was left dispatching a Wayland event against awl_proxywhose surface had already been destroyed, andwl_proxy_get_versionon it faulted. A gdb backtrace confirmed the crash is entirely insidelibgtk-4/libwayland-client(wl_proxy_get_version← GTK ←wl_display_dispatch_queue_pending←g_application_run) with no RustConn frame — a use-after-free our reparent-then-focus sequence triggered, not our own memory bug, which is also why it reproduced identically under the GL, Cairo and default renderers (it is not the GPU/Vulkan path). The tab restore and focus grab are now deferred to the next idle, after GTK has finished the reparent and dropped the stale proxy, which breaks the race; the widgets are re-resolved inside the idle so a session closed in the meantime is a no-op. (rustconn/src/window/split_view_actions.rs)
Documentation
- Documented how to run ChromaTerm (and other output filters) from a sandboxed build (#343) — the reporter who wanted coloured text rather than the highlight overlay's underline followed the docs to ChromaTerm as an Output Filter, then hit the real wall: a Flatpak/Snap RustConn cannot reach a host
chromaterm, and feeding it its ownPYTHONPATHstill fails because the sandbox's Python cannot see ChromaTerm'spyyamldependency. The Output Filter section of the user guide now spells out the working path — install ChromaTerm on the host and set the filter command toflatpak-spawn --host chromaterm, which runs it with the host's Python soyamlresolves. (The underline-vs-coloured-text limit, the multibyte-colour crash, the tab/CJK/scrollback positioning and the toggle for the built-in ERROR/WARNING/CRITICAL/FATAL rules were all already addressed in 0.22.6–0.23.x.) (docs/USER_GUIDE.md) - Clarified the snap's external FreeRDP client and documented the core26 migration (#342) — the snap has bundled FreeRDP's X11 client (
xfreerdp3, fromfreerdp3-x11) since 0.22.7 and gained thenetwork-statusplug (fixing the portalNetworkMonitorwarning) in 0.22.11, so the reported gaps are already closed. Thesnap/snapcraft.yamlbase comment now carries an actionable, numbered checklist for the eventualbase: core24 → core26move (enabling--features adw-1-8, re-checking the VTE andfreerdp3-x11/sdl-freerdp3package names on 26.04, and re-running the strict-confinement smoke), tied to the gnome extension's core26 support tracked in snapcraft#6185 and RustConn#174.docs/SNAP.mdnotes that ansdl-freerdp3client should be preferred over the X11 one once the snap is on 26.04. No build or runtime change. (snap/snapcraft.yaml,docs/SNAP.md)
Dependencies
- Updated: cc 1.7.0 → 1.8.0, serde_json 1.0.152 → 1.0.154, syn 3.0.7 → 3.0.8, unicode-ident 1.0.26 → 1.0.27, zopfli 0.8.3 → 0.8.4. All semver-compatible patch/minor bumps (serde_json plus the build-time proc-macro and compression families); no security advisories affected (
cargo deny check advisoriesclean). CLI download versions all current (TigerVNC pinned at 1.16.2); the RustCrypto release-candidate family and the out-of-range majors (zip 8→9, x509-cert 0.2→0.3) remain held back, pinned transitively by the sspi/picky-krb stack exactly as in 0.23.1–0.23.10; picky-krb 0.12.5 stays held at 0.12.4 for the same reason (itsGssApiMessageErrorvariant breaks the pinned sspi 0.21.3). The Flatpak/Flathub manifests are in sync (GNOME runtime 51, FreeRDP 3.32.1, cJSON 1.7.19, OpenH264 2.6.0).
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.11_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora (.rpm from this release)
sudo dnf install rustconn-0.23.11-1.fc44.x86_64.rpmAppImage
chmod +x RustConn-0.23.11-x86_64.AppImage
./RustConn-0.23.11-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.11-x86_64.AppImage --repo totoshko88/RustConn(The snap is signed by the Snap Store; the macOS build is delivered via the Homebrew tap.)