Skip to content

Repository files navigation

VER - Very Easy Remote Manager

Rust GTK4 Libadwaita Release License: MIT

VER (Very Easy Remote Manager) is a modern, lightweight, and native Linux Remote Connection Manager built from the ground up in Rust, GTK4, and Libadwaita. Engineered for efficiency with a minimal memory footprint (typically ~25 MB RAM) and near-instant startup, it provides a fast, secure, and intuitive interface for organizing, discovering, and connecting to remote infrastructure via RDP, XRDP, VNC, SSH, and SPICE.


Quick Install

Install the latest release of VER on any Linux distribution with a single command (no root required):

# Using curl
curl -fsSL https://raw.githubusercontent.com/dawiisss/ver/main/install.sh | bash

# Or using wget
wget -qO- https://raw.githubusercontent.com/dawiisss/ver/main/install.sh | bash

Note: Installs the standalone binary to ~/.local/bin/ver and registers desktop menu launchers and icons.
Please check the Runtime Dependencies section to ensure you have the required protocol backends installed (e.g. xfreerdp3, vncviewer, remote-viewer).
For system-wide installation, distro packages, or building from source, see Installation & Packaging.


Table of Contents


Key Features

Quick Connect (Ctrl+K)

  • Universal URI & Shorthand Parsing: Connect instantly using URIs (ssh://user@host:port, rdp://admin@server, vnc://10.0.0.5:5901, spice://hypervisor:5900) or intuitive shorthands (user@host:2222, host:3389, IPv6 [fe80::1]:22).
  • Live Autocomplete: Dynamic, real-time extraction and field population for protocols, hosts, ports, and usernames as you type.
  • Dual Execution Modes: Launch immediately for one-off ad-hoc sessions ("Connect") or persist directly to your connection library ("Save & Connect").

Host Reachability Prober & Smart Wake-on-LAN

  • Non-Blocking Reachability Status: Asynchronous background TCP probing displays real-time connection status in the sidebar:
    • 🟒 Online: Live host reachable with latency tooltip (e.g. Online (12 ms)).
    • πŸ”΄ Offline: Host unreachable with specific failure reason (e.g. Connection refused, Connection timed out).
    • 🟑 Probing: Live verification in progress.
    • βšͺ Unknown: Pending initial probe.
  • Integrated Wake-on-LAN (WoL): Send magic packets directly from the Connection Editor with support for standard, hyphenated, Cisco dot, and raw MAC formats.
  • Automated Post-WoL Polling: Initiates a 30-second background polling cycle, automatically transitioning the status dot to 🟒 Online and triggering a desktop toast notification as soon as the target machine responds.

Import & Export Ecosystem (Ctrl+I / Ctrl+E)

  • Remmina Migration: Auto-scan ~/.local/share/remmina/*.remmina profiles or import individual files with automatic extraction of display depths, audio redirection, multimon, and SSH keys.
  • OpenSSH ~/.ssh/config: Auto-detects and imports host blocks, hostnames, usernames, custom ports, and expanded identity files (~/.ssh/id_*).
  • Microsoft .rdp Support: Seamless import and export of standard Windows Remote Desktop .rdp configuration files.
  • JSON Backups: Full encrypted-password-safe JSON library backups with schema versioning and timestamp metadata.
  • Selective Export (Ctrl+E): Granular multi-selection checklist with "Select All" / "Deselect All", dynamic counter, and smart focus pre-selection.
  • Conflict Resolution: Choose between Skip Duplicates, Overwrite Existing, or Keep Both (Rename with Suffix) when importing.

Local Network & Service Discovery (Ctrl+D)

  • Subnet Scanning: Automatically probes your local network interfaces and subnets for active RDP (3389), VNC (5900), and SSH (22) services.
  • One-Click Import: Quickly add discovered network machines directly into your connection inventory.

Multi-Protocol Support

  • RDP & XRDP: Powered by xfreerdp3 with support for dynamic resolution, multimon, audio redirection, clipboard sharing, gateway servers, shared folders, security protocol negotiation (NLA, TLS, RDP, ExtNLA), and certificate verification policies (TOFU, Strict Deny, Ignore).
  • VNC: Seamless integration with vncviewer with automated credential passing and color level selection.
  • SPICE: High-performance hypervisor and VM streaming via remote-viewer.
  • SSH: Direct launch into your favorite desktop terminal emulator (ptyxis, kgx, gnome-terminal, konsole, alacritty, foot, wezterm, xterm) with custom private key identity paths (-i).

Enterprise-Grade Security

  • RDP Stdin Credential Hardening: Passwords are piped over standard input via xfreerdp3 /from-stdin:force, eliminating credential exposure in /proc/<pid>/cmdline and process monitoring utilities (ps, top).
  • Secret Service Keyring Integration: Securely store connection passwords in your native system keyring (gnome-keyring, kwallet, keepassxc) via the Freedesktop Secret Service API (oo7).
  • Configuration Hardening: Strict 0700 Unix directory permissions on all user configuration paths (~/.config/ver).
  • Clean Process Group Signaling: Process group signal termination (-(pid as i32)) ensures child shells, SSH sessions, and terminal wrappers exit cleanly without orphaned processes.

Active Session Tracking & System Tray

  • Live Session Badges: Real-time "Active" sidebar indicators showing currently connected sessions.
  • Session Logs: Embedded log view streaming live process output and connection events.
  • System Tray Indicator: Background StatusNotifierItem tray icon for quick window toggle and persistent daemon mode.

Blazing Fast & Memory Efficient

  • Minimal Memory Footprint: Pure native compiled Rust architecture with GTK4/Libadwaita consumes negligible RAM (typically ~20–35 MB baseline).
  • Instant Startup & Responsive UI: Zero runtime overhead, sub-second launch times, and non-blocking asynchronous event handling across background network probes and connection sessions.

Global Keyboard Shortcuts

VER features comprehensive keyboard accelerators adhering to GNOME HIG standards:

Shortcut Action
Ctrl + K Open Quick Connect dialog
Ctrl + N Create New Connection
Ctrl + F Focus Search Connections bar
Ctrl + I Open Import Connections dialog
Ctrl + E Open Export Connections dialog
Ctrl + D Open Network Device Discovery
Ctrl + , Open Preferences window
F5 / Ctrl + R Refresh Reachability status for all hosts
Return Launch selected connection
Delete Delete selected connection
Ctrl + ? / F1 Open Keyboard Shortcuts cheat sheet
Ctrl + Q Quit application

Installation & Packaging

Automated Installation

User Installation (No root / sudo required):

# Using curl
curl -fsSL https://raw.githubusercontent.com/dawiisss/ver/main/install.sh | bash

# Or using wget
wget -qO- https://raw.githubusercontent.com/dawiisss/ver/main/install.sh | bash

Installs the binary to ~/.local/bin/ver and desktop launchers to ~/.local/share/applications/.

System-wide Installation:

curl -fsSL https://raw.githubusercontent.com/dawiisss/ver/main/install.sh | sudo bash -s -- --system

Installs the binary to /usr/local/bin/ver and desktop launchers to /usr/local/share/applications/.

Install Options & Version Pinning:

# Install a specific release version
curl -fsSL https://raw.githubusercontent.com/dawiisss/ver/main/install.sh | bash -s -- --version v1.4.0

# Install to a custom prefix directory
./install.sh --prefix /opt/ver

# Install from a local build (target/release/ver)
./install.sh --local

# Preview actions without making changes
./install.sh --dry-run

Uninstallation

To remove VER and its desktop launchers, run the uninstallation script:

# Using curl
curl -fsSL https://raw.githubusercontent.com/dawiisss/ver/main/uninstall.sh | bash

# Or from local repository clone
./uninstall.sh

# Remove application and also purge configuration / connection data (~/.config/ver)
./uninstall.sh --purge

# Remove system-wide installation
sudo ./uninstall.sh --system

Runtime Dependencies

Ensure the backend tools for your required protocols are installed on your system:

Protocol Backend Package / Binary Example Package Names
RDP / XRDP xfreerdp3 freerdp3, freerdp3-x11
VNC vncviewer tigervnc, tigervnc-viewer
SPICE remote-viewer virt-viewer
SSH Native Terminal Emulator ptyxis, gnome-terminal, konsole, alacritty, foot, wezterm, xterm

Pre-Built Distribution Packages

You can download pre-built packages from GitHub Releases or build native packages locally:

./build_deb.sh        # Generates Debian / Ubuntu .deb package
./build_pacman.sh     # Generates Arch Linux pacman .pkg.tar.zst package
./build_rpm.sh        # Generates RedHat / Fedora .rpm package
./build_appimage.sh   # Generates standalone x86_64 AppImage

Build from Source

1. Install Build Dependencies

Debian / Ubuntu / Pop!_OS:

sudo apt update
sudo apt install build-essential rustc cargo libgtk-4-dev libadwaita-1-dev

Arch Linux / Manjaro / EndeavourOS:

sudo pacman -S base-devel rust gtk4 libadwaita

Fedora / RHEL:

sudo dnf install @development-tools rust cargo gtk4-devel libadwaita-devel

2. Compile and Run

# Run in development mode
cargo run

# Build optimized release binary
cargo build --release

The compiled binary will be located at target/release/ver. You can install it locally using ./install.sh --local.


Running Tests

Run the complete test suite across all unit, boundary, network, prober, and UI targets:

cargo test --all-targets

Verify linter compliance:

cargo clippy --all-targets --all-features -- -D warnings

Acknowledgments

VER is built on the shoulders of remarkable open-source projects and communities:

  • FreeRDP: For the industry-standard xfreerdp3 client providing RDP/XRDP protocol support.
  • TigerVNC: For high-performance, secure VNC remote desktop client tooling.
  • SPICE Project: For low-latency VM and hypervisor streaming via remote-viewer.
  • OpenSSH: For the gold standard in secure remote shell connectivity.
  • GNOME & Libadwaita: For modern, accessible Linux desktop design systems and HIG.
  • gtk-rs: For first-class, memory-safe Rust bindings to GTK 4 and Libadwaita.
  • oo7: For native Freedesktop Secret Service keyring integration in pure Rust.
  • Remmina: For inspiring Linux remote management workflows.

License & Changelog

  • License: Distributed under the MIT License.
  • Changelog: See CHANGELOG.md for detailed version history and release notes.

About

Modern, native Linux Remote Connection Manager built with Rust & Libadwaita. Supports RDP, XRDP, VNC, SSH, and SPICE.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages