Skip to content

Instantly share code, notes, and snippets.

@HarmfulBreeze
Last active January 19, 2026 04:01
Show Gist options
  • Select an option

  • Save HarmfulBreeze/9d013676301d784ce9783a39b0e66a84 to your computer and use it in GitHub Desktop.

Select an option

Save HarmfulBreeze/9d013676301d784ce9783a39b0e66a84 to your computer and use it in GitHub Desktop.
Setting up Hyper-V Enhanced Session Mode with Fedora 43

Tested working on Fedora Workstation 39, 40, 41, 42, and 43.

(Commands prefixed with a # should be run as the root user or with sudo. Commands prefixed with a $ should be run as a regular/unprivileged user.)

  1. # dnf install xrdp (with Xorg session support: # dnf install xrdp xorgxrdp)
  2. If using GNOME: # $EDITOR /etc/pam.d/xrdp-sesman and comment and uncomment the appropriate lines.
  3. If using Xfce: $ echo startxfce4 > $HOME/.xsession and $ chmod +x $HOME/.xsession.
  4. Optionally, rename the shared drives mount: # $EDITOR /etc/xrdp/sesman.ini and set FuseMountName=shared-drives
  5. # $EDITOR /etc/xrdp/xrdp.ini and set:
    • port=vsock://-1:3389 ([Globals] section)
    • vmconnect=true (uncomment)
    • security_layer=rdp
    • bitmap_compression=false
    • If you chose to install the xorgxrdp package: uncomment the whole [Xorg] section.
  6. $ systemctl enable xrdp xrdp-sesman
  7. Shut down the virtual machine (do NOT reboot) and close the Virtual Machine Connection window.
  8. On your host, in PowerShell (as admin or as a user in the "Hyper-V Administrators" group): Set-VM -VMName "Name of your Fedora VM" -EnhancedSessionTransportType HvSocket
  9. Connect to your VM by reopening the Virtual Machine Connection window, and boot it.

You can now enable Enhanced Session Mode.

@nreith
Copy link

nreith commented Jan 19, 2026

@harahauk It's very sad still after so many years of Wayland, that we don't have a reliable way to enable remote desktop on a headless machine. There are comments in Fedora forums that claim to have solved this on Fedora 42 or 41, but I have never gotten them working. And it seems very user-unfriendly, having to create certificates and a bunch of other stuff manually.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment