What's Changed
Added
-
Flatpak Components Manager — On-demand CLI download for Flatpak environment:
- Menu → Flatpak Components... (visible only in Flatpak)
- Download and install CLIs to
~/.var/app/io.github.totoshko88.RustConn/cli/ - Supports: AWS CLI, AWS SSM Plugin, Google Cloud CLI, Azure CLI, OCI CLI, Teleport, Tailscale, Cloudflare Tunnel, Boundary, Bitwarden CLI, 1Password CLI, TigerVNC
- Python-based CLIs installed via pip, .deb packages extracted automatically
- Install/Remove/Update with progress indicators and cancel support
- SHA256 checksum verification (except AWS SSM Plugin which uses "latest" URL)
- Settings → Clients detects CLIs installed via Flatpak Components
-
Snap Strict Confinement — Migrated from classic to strict confinement:
- Snap-aware path resolution for data, config, and SSH directories
- Interface connection detection with user-friendly messages
- Uses embedded clients (IronRDP, vnc-rs, spice-gtk) — no bundled external CLIs
- External CLIs accessed from host via
system-filesinterface
Changed
-
Flatpak Permissions — Simplified security model:
- Removed
--talk-name=org.freedesktop.Flatpak(no host command access) - SSH available in runtime, embedded clients for RDP/VNC/SPICE
- Use Flatpak Components dialog to install additional CLIs
- Removed
-
Snap Package — Strict confinement with host CLI access:
- Added plugs for ssh-keys, personal-files, system-files
- Data stored in
~/snap/rustconn/current/ - Smaller package (~50 MB) using host-installed binaries
-
Settings → Clients — Improved client detection display:
- All protocols (SSH, RDP, VNC, SPICE) show embedded client status
- Blue indicator (●) for embedded clients, green (✓) for external
- Fixed AWS SSM Plugin detection (was looking for wrong binary name)
Improved
-
UI/UX — GNOME HIG compliance:
- Accessible labels for status icons and protocol filter buttons
- Sidebar minimum width increased to 200px
- Connection dialog uses adaptive
adw::ViewSwitcherTitle - Toast notifications with proper priority levels
-
Thread Safety — Mutex poisoning recovery in FreeRDP thread
Fixed
- RDP Variable Substitution — Global variables now resolve in username/domain fields
Refactored
- Dialog Widget Builders — Reusable UI components (
CheckboxRowBuilder,EntryRowBuilder,SpinRowBuilder,DropdownRowBuilder,SwitchRowBuilder) - Protocol Dialogs — Applied widget builders to SSH, RDP, VNC, SPICE panels
- Legacy Cleanup — Removed unused
TabDisplayMode,TabLabelWidgetstypes
Documentation
- New:
docs/SNAP.md— Snap user guide with interface setup - Updated:
docs/INSTALL.md,docs/USER_GUIDE.md
Installation
Debian/Ubuntu
sudo dpkg -i rustconn_0.7.6_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora
sudo dnf install rustconn-0.7.6-1.fc41.x86_64.rpmAppImage
chmod +x RustConn-0.7.6-x86_64.AppImage
./RustConn-0.7.6-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