Skip to content

v0.23.2

Choose a tag to compare

@github-actions github-actions released this 06 Oct 14:24
· 66 commits to main since this release

What's Changed

Fixed

  • The high-contrast tab-bar line is neutralised on GTK < 4.22 as well — the override that repaints the tab bar's dividing line in the window tone (so it blends into the content the way Nautilus' does) was wrapped in a @media (prefers-contrast: more) block, which only GTK 4.22+ parses. On older GTK (4.14 on Ubuntu 24.04, and every distro still shipping it) the whole block was rejected as an unknown @-rule, so a high-contrast session kept libadwaita's lighter rule under the tabs. The override now out-specifies libadwaita's own tabbar .box rule with a window tabbar .box selector instead of a media query, so it wins in both normal and high-contrast modes on every supported GTK (4.14 through 4.24) with no media-query dependency.

Changed

  • Compact mode density overhaul — in compact mode the sidebar title ("Connections") is now hidden, header bars shrink from 32 px to 28 px, toolbar buttons from 24 px to 20 px, tab items from 28 px to 24 px (with a proportionally smaller font), sidebar rows from 28 px to 24 px, the search entry from 32 px to 28 px (inner from 26 px to 22 px), popover items from 26 px to 22 px (with a smaller font), the monitoring bar from 22 px to 18 px, and embedded toolbar buttons from 24 px to 20 px. The bottom-bar icon float is fixed by adding explicit box margins and a reduced bar height. Two sidebar header buttons (search, menu) retain their Rust set_size_request floor (28 px on macOS, 44 px on Linux) and are not affected by these CSS changes.
  • macOS dialog button placement — on macOS, action buttons (Save, Test, Create, Rename, Move, Connect, Export, Import, Apply, etc.) in all custom dialog headers are now placed on the right side (pack_end) away from the window-close button on the left, reducing the risk of accidentally closing a dialog instead of confirming an action. A new dialog_pack_action() helper in dialogs/widgets.rs centralises the platform check (#[cfg(target_os = "macos")]). The connection editor's two-button header (Test + Create) packs the primary action outermost on both platforms. Cancel-only buttons (credential transfer, SSH agent, portable passphrase change) are intentionally left on the start side. 24 files, 26 call sites updated.

Dependencies

  • Feature ladder raised — added adw-1-10 and gtk-4-24 rungs to Cargo.toml features (pure version-ceiling bumps; the crate does not call any 1.10- or 4.24-specific API). The Homebrew formula, CI release workflow, OBS debian.rules, OBS README.md, and all three Flatpak manifests are updated to match. Flatpak runtime bumped from GNOME 50 to GNOME 51; bundled VTE raised from 0.80.5 to 0.84.1 (the < 0.81 ceiling is removed). The macos-build.sh feature set now includes adw-1-10,gtk-4-24.
  • Snap migrated to the core26 base (libadwaita 1.8 parity) — the Snap package moves from base: core24 (GNOME 46 platform, libadwaita 1.5 with fallbacks) to base: core26 (the gnome-core26 platform, GTK 4.22 and libadwaita 1.8), so the Snap now builds with --features adw-1-8 and gains the same AdwSpinner/AdwToggleGroup/AdwShortcutsDialog polish the Flatpak already has. The GTK4-VTE staging and the WebKit-6.0-absence web-embedded drop remain, because gnome-core26 still ships only GTK3-VTE and webkit2gtk-4.1.
  • CI runners pinned to ubuntu-26.04 — the 13 Linux jobs in ci.yml are pinned from the floating ubuntu-latest to ubuntu-26.04 ahead of GitHub's 2026-10-19 migration, making the runner image explicit instead of letting it flip silently. The release and packaging workflows (release.yml, flatpak.yml, obs-update.yml, …) are intentionally left on their current pins so release artefacts keep their reproducible build base.
  • Updated: want 0.3.1 → 0.3.2 (transitive, via hyper). Flatpak/Flathub cargo-sources.json regenerated to match. No security advisories affected (cargo deny check advisories clean). picky-krb 0.12.5 remains held back for the same reason as 0.23.1: its GssApiMessageError variant breaks the pinned sspi 0.21.3.

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

Fedora (.rpm from this release)

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

AppImage

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

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 SHA256SUMS

Signed build provenance (SLSA, via Sigstore) — proves the file was built by this
workflow from this commit:

gh attestation verify RustConn-0.23.2-x86_64.AppImage --repo totoshko88/RustConn

(The snap is signed by the Snap Store; the macOS build is delivered via the Homebrew tap.)