What's Changed
Added
- Waypipe Support — Wayland application forwarding for SSH connections via
waypipe; auto-detected on Wayland sessions whenwaypipebinary is available on PATH; per-connection toggle in SSH Session options; graceful fallback to direct SSH when unavailable (#36) - IronRDP Clipboard Integration — Bidirectional clipboard sync between local desktop and remote RDP session via cliprdr channel; server→client text is auto-synced to local GTK clipboard; local clipboard changes are automatically announced to the server; Copy/Paste buttons remain as manual fallback; feedback loop prevention via suppression flag
Fixed
- Missing icons on KDE and non-GNOME desktops — Replaced all non-standard icon names (
emblem-ok-symbolic,emblem-system-symbolic,call-start-symbolic,modem-symbolic,application-x-executable-symbolic, etc.) with freedesktop-standard equivalents; replaced icons missing from Adwaita (emblem-default-symbolic,emblem-synchronizing-symbolic,utilities-system-monitor-symbolic,view-sidebar-start-symbolic,tag-symbolic) with available alternatives; forced Adwaita icon theme viaGtkSettingsfor consistent icon availability on all desktops; unified protocol icons via single source of truth inicons.rs, eliminating hardcoded duplicates across sidebar, tabs, dialogs, templates, and cluster views (#35) - Serial connection creation failed — Serial and Kubernetes connections no longer require host/port validation (they use device path / pod name instead); previously "Host cannot be empty" error blocked saving these connections
- Serial/Kubernetes missing client toast — Shows user-friendly toast when picocom (Serial) or kubectl (Kubernetes) is not installed, and when Kubernetes pod/container configuration is incomplete; fixed toast overlay discovery that failed on
adw::ApplicationWindowinternal widget hierarchy - libsecret password storage panic — Fixed
debug_assertcrash in libsecret backend that rejected non-UUID lookup keys (e.g."test (vnc)"); libsecret usesname (protocol)format, not UUIDs - libsecret password retrieval — Fixed
is_available()check that always returnedfalsebecausesecret-tool --versionis not a valid subcommand (exits with code 2); the store path bypassed this check but the retrieve path went throughSecretManagerwhich skipped the backend, causing saved passwords to never be found on connection - VNC/RDP identical icons — VNC now uses
video-joined-displays-symbolic(two monitors) instead ofvideo-display-symbolicwhich was identical to RDP'scomputer-symbolicin Adwaita - SFTP via mc opens root instead of home — mc FISH VFS URI now includes
/~suffix to open the remote user's home directory; mc is launched viash -cwrapper for correct terminal sizing - SSH agent not inherited by VTE terminals —
spawn_commandnow injectsSSH_AUTH_SOCK/SSH_AGENT_PIDfrom the globalOnceLock<SshAgentInfo>into VTE-spawned processes; previously mc, ssh, and other terminal commands could not reach the SSH agent when RustConn started its own agent (Rust 2024 edition forbidsset_var)
Improved
- Client Detection — Added waypipe to Settings → Clients detection tab
- Documentation — Added Waypipe section to User Guide and Architecture docs
- Translations — Added waypipe-related strings to all 18 languages
Dependencies
- Updated: deflate64 0.1.10→0.1.11, dispatch2 0.3.0→0.3.1, objc2 0.6.3→0.6.4, zerocopy 0.8.39→0.8.40
Installation
Debian/Ubuntu
sudo dpkg -i rustconn_0.9.3_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora
sudo dnf install rustconn-0.9.3-1.fc41.x86_64.rpmAppImage
chmod +x RustConn-0.9.3-x86_64.AppImage
./RustConn-0.9.3-x86_64.AppImageopenSUSE (OBS)
Packages available at: https://build.opensuse.org/package/show/home:totoshko88:rustconn/rustconn
# Tumbleweed
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/openSUSE_Tumbleweed/ rustconn
sudo zypper ref
sudo zypper in rustconn
# Leap 16.0
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/16.0/ rustconn
sudo zypper ref
sudo zypper in rustconn