A Windows front-end for XDMCP remote desktop sessions, built with Qt 6.
WinX11Front manages a list of saved XDMCP sessions and connects to Linux
hosts with Cygwin/X's XWin.exe X server: the
remote display manager's login screen and whole desktop appear in a single
window on your Windows desktop. No SSH, VNC or RDP involved — just plain
XDMCP over the LAN.
- Session manager — save any number of XDMCP sessions (host, display options, icon) in an icon-view list; double-click to connect.
- LAN discovery — scans a subnet for XDMCP-enabled hosts by probing UDP port 177 with an XDMCP QUERY and listening for WILLING replies.
- X server options per session — clipboard sync, key auto-repeat, DPI, full-screen or windowed desktop resolution.
- Bundled or system X server — uses
third_party/xwin/fetched byscripts/fetch_xwin.ps1, or a system Cygwin installation. - Diagnostics — a log pane that surfaces X server errors, including
the tail of
XWin.1.logwhen the server dies at startup.
- Windows 10 or later (x64)
- Qt 6 (Widgets, Network, Concurrent) — built with 6.11.1 / msvc2022_64
- CMake 3.21+ and Visual Studio 2022 (MSVC) to build
- A Cygwin/X
XWin.exe— see Getting the X server
cmake -S . -B build -DCMAKE_PREFIX_PATH=D:/Qt/6.11.1/msvc2022_64
cmake --build build --config ReleaseThe executable lands in build\Release\WinX11Front.exe. To deploy Qt
runtime DLLs next to it:
D:\Qt\6.11.1\msvc2022_64\bin\windeployqt.exe build\Release\WinX11Front.execmake --install build --config Release --prefix <dir> produces a
distributable folder; if third_party/xwin/ exists it is installed next
to the executable as xwin/.
WinX11Front looks for XWin.exe in this order:
<app dir>\xwin\bin\XWin.exe(installed layout)<app dir>\..\third_party\xwin\bin\XWin.exe(development layout)D:\cygwin64\bin\XWin.exe,C:\cygwin64\bin\XWin.exe(system Cygwin)
For the bundled layout, download a minimal Cygwin/X tree into
third_party/xwin/ (not committed to the repository):
powershell -ExecutionPolicy Bypass -File scripts\fetch_xwin.ps1This runs the Cygwin installer silently with only the xorg-server
package. Alternatively install Cygwin yourself and
pick xorg-server in the package list.
The Linux host must run a display manager with XDMCP enabled, e.g. LightDM:
# /etc/lightdm/lightdm.conf.d/xdmcp.conf
[XDMCPServer]
Enabled=trueor GDM:
# /etc/gdm/custom.conf
[xdmcp]
Enable=truethen restart the display manager and allow UDP port 177 through the host's firewall. See MANUAL.md for details.
Double-click a session (or use the context menu) to connect; the remote greeter appears in a window. Use Session → Disconnect Server to end it, and Session → Search Server... to find XDMCP hosts on your LAN. The full reference lives in MANUAL.md.
src/ Qt application (main window, session store/dialog, LAN scanner,
X server manager)
resources/ SVG icon set (embedded via Qt resources)
scripts/ fetch_xwin.ps1 + Python X11 diagnostic helpers
tests/ small CMake test targets (XDMCP probes, scanner test)
third_party/ Cygwin/X runtime fetched by scripts (not committed)
This project's code is licensed under the MIT License — see
LICENSE. Cygwin/X and its runtime DLLs downloaded by
scripts/fetch_xwin.ps1 are separate programs licensed under the GPL;
fetching them via the script does not change this repository's license.