v0.15.5
What's Changed
Added
- IronRDP 0.15 (bulk compression) — RDP sessions now negotiate XCRUSH (RDP 6.1) compression in Quality/Balanced modes and MPPC-64K in Speed mode, significantly reducing bandwidth for slow connections. Compression is handled transparently by the new
ironrdp-bulkcrate. - IronRDP 0.15 (slow-path rendering) — sessions with servers that use slow-path output (XRDP, older Windows) now render correctly instead of showing blank screens. Both slow-path bitmap and pointer updates are routed through the existing rendering pipeline.
- IronRDP 0.15 (alternate_shell/work_dir) — RemoteApp
programandworking_dirare now passed via the nativealternate_shell/work_dirfields in the Client Info PDU, enabling CyberArk PSM and custom shell scenarios without FreeRDP. - IronRDP 0.15 (improved compatibility) — connection to GNOME Remote Desktop (grd) no longer fails on
ServerDeactivateAllduring CapabilitiesExchange; all colour depths are advertised per FreeRDP pattern (fixes Windows Server 2012+ with 24bpp); Auto-Detect Request PDUs no longer crash the session; bitmap updates exceeding buffer bounds after resize are safely skipped. - IronRDP 0.15 (multitransport dispatch) —
MultitransportRequestandAutoDetectPDUs are now logged instead of causing unhandled-PDU errors. UDP sideband transport is not yet implemented but the session stays alive. - IronRDP 0.15 (clipboard file contents) —
SendFileContentsRequest/SendFileContentsResponseclipboard messages are now gracefully handled (logged, not yet implemented for full file copy). - IronRDP 0.15 (pixel format fix) — removed manual R↔B channel swap in
extract_region_data; IronRDP 0.15 fixed the pixel format pipeline so BgrA32 output now directly matches Cairo's ARGB32 (both are B-G-R-A in memory on little-endian). This eliminates a per-frame O(w×h) loop, improving 4K rendering throughput.
Fixed
- macOS: passwords not saving to Keychain —
dispatch_vault_op()incorrectly usedLibSecretBackend(which shells out tosecret-tool, a Linux-only utility) for theMacOsKeychainbackend type. Now correctly instantiatesMacOsKeychainBackend(Security.framework) on macOS. Users saw a generic "Failed to save password to vault" toast with no further details. - macOS: tray icon missing when launched from .app bundle — the root cause was
exec()(re-exec) breaking the macOS LaunchServices "scene" registration forNSStatusItem. Replacedsetup_macos_bundle_env()(which usedexec()to set env vars) withconfigure_macos_bundle()which programmatically configures all subsystems without re-exec:i18n::locale_dir()now detects the bundle'sContents/Resources/localepath directly, icon search paths were already added programmatically inregister_app_icon(), andget_extended_path()already handles PATH for child processes.CFBundleExecutablein Info.plist now points to the nativerustconnbinary with no wrapper or re-exec needed. Note: on macOS Sequoia 15.5, tray icon is not displayed when launched via Finder/Dock due to a GTK4 GDK macOS backend limitation (FrontBoardServices scene registration failure); works correctly when launched from terminal. - macOS: AWS SSM "session-manager-plugin not found" — added
/usr/local/sessionmanagerplugin/bintoget_extended_path()on macOS for users who install the plugin via the official AWS installer (not Homebrew). Documented the separate installation requirement inZERO_TRUST.mdandMACOS_BUILD.md.
Changed
- Compact mode: denser sidebar rows — vertical margins reduced from 6px to 3px per row, allowing ~60px more visible content for 10 connections
- Compact mode: slimmer sidebar bottom toolbar — button min-height reduced from default to 22px with tighter padding
- Compact mode: smaller search/filter bar — search entry min-height reduced to 26px with slightly smaller font
- Compact mode: popover menu item padding — all popover menus (hamburger, context, tab) use less vertical padding per item, significantly reducing menu height on small screens
- Compact mode: smaller protocol filter buttons — denser filter pills matching overall compact density
- Compact mode: denser RDP/VNC/SPICE toolbar — embedded session toolbar (Copy, Paste, Autotype, Ctrl+Alt+Del) uses reduced margins and button height in compact mode, giving more vertical space to the remote desktop viewport
- Compact mode enabled by default on macOS — new installations on macOS start with compact interface active; existing users keep their saved preference
- Hamburger menu restructured into submenus — "Tools" (Snippets, Clusters, Templates, Variables, Password Generator, Wake On LAN, SSH Tunnels) and "Sessions" (Active Sessions, History, Statistics, Recordings) are now submenus; Import/Export/Copy/Paste merged into a single "File" section. Top-level menu reduced from 24 items to ~14, dramatically reducing vertical height on macOS
Dependencies
- Upgraded: ironrdp 0.14→0.15, ironrdp-tokio 0.8→0.9, ironrdp-connector 0.8→0.9, ironrdp-session 0.8→0.9, ironrdp-cliprdr 0.5→0.6, ironrdp-rdpdr 0.5→0.6, ironrdp-rdpsnd 0.7→0.8, ironrdp-dvc 0.5→0.6, ironrdp-displaycontrol 0.5→0.6, ironrdp-graphics 0.7→0.8, ironrdp-pdu 0.7→0.8, ironrdp-core 0.1→0.2, ironrdp-svc 0.6→0.7. New transitive: ironrdp-bulk 0.1.
- Updated: inotify 0.11.1→0.11.2, ironrdp-tls 0.2.0→0.2.1, rustls-native-certs 0.8.3→0.8.4, unicode-segmentation 1.13.2→1.13.3
Installation
Flatpak (Recommended)
flatpak install flathub io.github.totoshko88.RustConnSnap
sudo snap install rustconnDebian/Ubuntu (.deb from this release)
sudo dpkg -i rustconn_0.15.5_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora (.rpm from this release)
sudo dnf install rustconn-0.15.5-1.fc44.x86_64.rpmAppImage
chmod +x RustConn-0.15.5-x86_64.AppImage
./RustConn-0.15.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