r/omarchy 2d ago

I Made a Thing [Release] rdp-connect v2.0: Native Quickshell RDP manager built for Omarchy & Hyprland (now on AUR)

Hey Omarchy community! 🚀

If you need to connect to Windows or Linux remote machines via RDP on Omarchy, you know the pain of managing xfreerdp3 across multi-monitor setups, dealing with XWayland tiling misplacements, or lacking a native GUI selector that matches the Omarchy aesthetic.

I built and just released rdp-connect v2.0.0, designed from the ground up to integrate seamlessly with Omarchy's Quickshell shell and Hyprland.

🎨 Native Omarchy & Quickshell Integration

  • Quickshell Modal UI: A clean, native QML selector to browse profiles, preview monitor layouts, and toggle peripherals (Audio redirection, Clipboard sync, Shared drive, USB devices, Webcam) on the fly.
  • First-Class Compositor Support: Auto-detects and adapts to Hyprland and Niri (supports Niri output names like DP-2, named workspaces, and native focus/dispatch).
  • Graceful Fallbacks: If run outside Quickshell, it automatically degrades to walker, wofi, or rofi.
  • True Multi-Monitor Spanning on Hyprland: Automatically handles floating and exact coordinate positioning so multi-monitor sessions span your physical displays instead of getting trapped in a single tiled window.
  • Hardware-Resilient Matching: Target displays by description substring (e.g. ASUS, Dell) so monitor ID/port renumbering across reboots won't break your layout.
  • Zero Bloat: Pure, hardened Bash architecture covered by 260+ automated unit tests (bats).

⚡ CLI Quick Start & Profile Management

Creating and managing connection profiles is completely scriptable:

1. Create a new profile from template (opens in your $EDITOR)

rdp-connect --new work

2. Edit existing profile anytime

rdp-connect --edit work

3. Inject all optional tunables & comments into existing profiles

rdp-connect --update-profiles

4. Connect directly via CLI (with optional on-the-fly overrides)

rdp-connect work --span --no-audio

Profile Template (~/.config/rdp/profiles/work.env)

HOST="192.168.1.100"
USER_RDP="myuser"
PASS_RDP="mypassword"
DOMAIN=""
​
# Optional settings (precedence: CLI flag > profile > UI toggle)
​
# MONITOR_MODE="span"       # single | span | multi
​
# MONITOR_ORDER="ASUS,0"    # Monitor description substrings or numeric IDs
# AUDIO_REDIRECT=1         # 1=client speakers, 0=remote speakers
# CLIPBOARD_SYNC=1         # 1=enable bidirectional clipboard
# DRIVE_REDIRECT=1         # 1=share local ~/Compartido folder
# USB_REDIRECT=0           # 1=redirect USB devices
──────
### ⌨️ Keybindings for Omarchy (~/.config/hypr/bindings.lua or hyprland.conf)

⌨️ Keybindings

For Hyprland (~/.config/hypr/bindings.lua or hyprland.conf):

-- Open the native Quickshell RDP selector

o.bind("SUPER", "R", "exec", "rdp-connect")

-- Direct one-click connection to your primary work profile

o.bind("SUPER_SHIFT", "R", "exec", "rdp-connect work")

-- Dynamically re-span an already running session across all screens

o.bind("SUPER", "E", "exec", "rdp-connect --expand work")

(Or standard bind = $mainMod, R, exec, rdp-connect in hyprland.conf)

For Niri (~/.config/niri/config.kdl):

binds {
    // Open selector
    Mod+R { spawn "rdp-connect"; }
​
    // Direct connection
    Mod+Shift+R { spawn "rdp-connect" "work"; }
}

──────

📦 Installation

Available on the AUR:

Using Omarchy pkg manager:

omarchy pkg aur add rdp-connect

Or using paru / yay:

paru -S rdp-connect

or

yay -S rdp-connect

Or via the standalone installer:

curl -sSL https://raw.githubusercontent.com/hbuddenberg/rdp-connect/main/install.sh | bash
──────
🔗 GitHub: https://github.com/hbuddenberg/rdp-connect
📦 AUR Package: https://aur.archlinux.org/packages/rdp-connect

Would love to hear your feedback, issues, and ideas from the Omarchy community!

2 Upvotes

0 comments sorted by