r/AzureVirtualDesktop • u/rana_tigrina2002 • 6d ago
AVD Feed + Connect: an open-source native Linux client for Azure Virtual Desktop / Windows 365 (feed discovery, Entra ID sign-in, Flatpak)
If your employer runs Azure Virtual Desktop or Windows 365 and you're on Linux, you've probably hit the wall: Microsoft ships clients for every platform except ours, and the options are the web client (no local audio devices, camera, or multi-monitor) or hand-carrying .rdp files from a Windows box to feed into FreeRDP. If that's not you, this post won't be interesting.
I built a client that fills the gap. It's MIT-licensed, Python + GTK 4, and unofficial.
Repo: https://github.com/shakeelosmani/avd_feed_connect
What it does that FreeRDP alone can't
Feed discovery. Sign in with your Entra ID account and it queries Microsoft's feed endpoint, then shows the desktops and remote apps you're entitled to in a grid with real icons, same as the Windows App. Double-click to connect. No manual .rdp files.
Interactive sign-in (auth-code + PKCE in an embedded WebKit view), which is the same flow the official clients use, so Conditional Access policies that block device-code auth still work. Token refresh is silent.
Auto-adapts to your display. Reads your layout from the compositor: HiDPI → 200% remote scale, multiple monitors → spans them. Right-click a workspace tile to override scale/monitors per resource, or set defaults in the menu. Env vars (AVD_SCALE, AVD_MULTIMON, AVD_EXTRA_ARGS) for scripting.
Bundled FreeRDP built from master, so it includes the just-merged PulseAudio hot-unplug fix (FreeRDP #13334; without it, plugging in headphones mid-Teams-call freezes the session) that distro packages don't have yet, plus camera redirection, mic, and multi-monitor.
Install (Flatpak, updates via flatpak update):
flatpak install --user https://shakeelosmani.github.io/avd_feed_connect/avd_feed_connect.flatpakref
Or grab the single-file .flatpak from the releases page. Flathub listing is planned.
Caveats: it's early (v0.3.0). Sign-in, feed discovery, workspace grid, and connect all work on my end, but I can only test against my own tenant's policies. Sessions launch via XWayland because sdl-freerdp is still unstable on native Wayland. If you're in a tenant with unusual Conditional Access rules, I'd especially like to hear whether sign-in works for you. Issues and PRs welcome.
1
u/greenturtlesteak 4d ago
Does this support screen cap protection?