GoXFreeRDP is a modern GTK3 GUI wrapper for xfreerdp (FreeRDP v2/v3) on Linux. It provides a simple, clean, and responsive user interface to manage remote desktop connections and seamlessly integrates with your system's file manager to open .rdp files on double-click.
- Connection Management: Save and organize multiple RDP servers with custom configurations.
- Adaptive Dark Mode: Automatically detects and syncs with your desktop's light or dark mode theme in real-time.
- Credential Fallback: Intercepts authentication errors and prompts you with a GTK dialog to input your password securely.
- Advanced Parameter Overrides: Fine-tune global and per-server overrides for clipboard sharing, audio redirection, fullscreen, dynamic resolution, multi-monitor, font smoothing, and custom command-line flags.
- Collapsible Layout: Keeps dialogs clean by grouping advanced options inside a collapsible drawer.
- Interactive Connection Logs: A built-in terminal-like console to view the output of RDP sessions in real-time for troubleshooting.
- File Explorer Integration: Registers MIME types to let you double-click
.rdpfiles in file managers like Nautilus, Dolphin, or Thunar to launch connections instantly.
Depending on whether you use the precompiled binary or compile from source, you need different packages installed on your system.
You only need the runtime dependencies. Golang and development headers are NOT required:
- FreeRDP (either
xfreerdporxfreerdp3binary in your PATH) - xdg-utils (for MIME file association)
Install runtime dependencies:
- Ubuntu / Debian / Linux Mint:
sudo apt update sudo apt install freerdp2-x11 xdg-utils
- Fedora / RHEL:
sudo dnf install freerdp xdg-utils
- Arch Linux:
sudo pacman -S freerdp xdg-utils
You need both the build tools (only required during compilation) and runtime dependencies:
- Go (1.18 or higher)
- pkg-config
- GTK 3 Development Headers
- FreeRDP & xdg-utils (runtime)
Install build + runtime dependencies:
- Ubuntu / Debian / Linux Mint:
sudo apt update sudo apt install golang-go libgtk-3-dev pkg-config freerdp2-x11 xdg-utils
- Fedora / RHEL:
sudo dnf install golang gtk3-devel pkg-config freerdp xdg-utils
- Arch Linux:
sudo pacman -S go gtk3 pkgconf freerdp xdg-utils
We provide an interactive installer script that automatically detects and prompts you to install any missing runtime/development dependencies (such as FreeRDP, xdg-utils, Go, or GTK3 headers) using your package manager.
It lets you choose between:
- Downloading a precompiled release binary from GitHub (Recommended - fast, does not require compilation tools like Go or GTK3 development headers).
- Compiling from source (builds GoXFreeRDP locally on your machine).
It also configures the desktop menu entries, icons, and .rdp file associations:
git clone https://github.com/hermawanramadhan/goxfreerdp.git
cd goxfreerdp
chmod +x install.sh
./install.shIf you prefer compiling the application manually from source:
-
Build only (binary remains in the current directory):
make
-
Install for local user only (installs to
~/.local/bin):make install
-
Install system-wide for all users (requires root privileges):
sudo make install PREFIX=/usr/local
If you downloaded a precompiled binary (goxfreerdp-linux-amd64 or goxfreerdp-linux-arm64) from the GitHub Releases page:
- Rename the downloaded binary to
goxfreerdpand place it in the root of the cloned repository. - Grant executable permissions to the binary:
chmod +x goxfreerdp
- Install the binary along with the desktop launcher, icons, and MIME associations:
- For local user only:
make install-only
- System-wide for all users:
sudo make install-only PREFIX=/usr/local
- For local user only:
GoXFreeRDP registers itself as the default application to open .rdp files. When you install using make install or ./install.sh:
- It registers the
application/x-rdpMIME type. - It installs the desktop application launcher (
goxfreerdp.desktop). - It associates
.rdpextensions with GoXFreeRDP.
You can now double-click any .rdp file in your desktop file manager to connect directly to the remote server.
To remove GoXFreeRDP and clean up desktop integrations:
-
If installed to user-space:
make uninstall
-
If installed system-wide:
sudo make uninstall PREFIX=/usr/local
This project is licensed under the MIT License - see the LICENSE file for details.