winapps icon indicating copy to clipboard operation
winapps copied to clipboard

Wayland implementation

Open oskardotglobal opened this issue 2 months ago • 4 comments

Discussed in https://github.com/winapps-org/winapps/discussions/19

Originally posted by LDprg July 17, 2023 Wayland with freerdp isnt that hard, we just need select between xfreerdp and the wlfreerdp command. This could happen automatically (based on env vars) or on a config field.

I would prefer to select automatically, as long as no config field is set.

Edit: fix typo

oskardotglobal avatar Oct 05 '25 10:10 oskardotglobal

According to my findings, neither sfreerdp or wlfreerdp (3.15) work on my Gnome 48 system. However, xfreerdp works flawlessly. For now, I've only tested explorer, cmd and paint though.

oskardotglobal avatar Oct 05 '25 10:10 oskardotglobal

@oskardotglobal I believe wlfreerdp has been deprecated in favour of developing an SDL-based cross-platform client. For now, FreeRDP runs as expected on GNOME 49 (Wayland) via xwayland.

KernelGhost avatar Oct 06 '25 21:10 KernelGhost

wlfreerdp works fine on GNOME 48 (48.5), for example testing this on Fedora + Podman podman unshare --rootless-netns wlfreerdp /u:"user" /p:"MyWindowsPassword" /v:127.0.0.1 /cert:tofu launches an RDP session that works flawlessly.

Although, setting FREERDP_COMMAND to wlfreerdp in the config file ends up launching a buggy window; more specifically you can see the Windows log in UI, it loads for a bit, then it freezes. This only happens during the setup, trying the previously mentioned podman command works fine. Is winapps passing some special flags that might be causing this?

The RDP logfile

[22:56:20:178] [154933:00025d35] [WARN][com.freerdp.client.common.cmdline] - [freerdp_client_warn_deprecated]: [deprecated] wlfreerdp client has been deprecated
[22:56:20:178] [154933:00025d35] [WARN][com.freerdp.client.common.cmdline] - [freerdp_client_warn_deprecated]: As replacement there is a SDL3 based client available.
[22:56:20:178] [154933:00025d35] [WARN][com.freerdp.client.common.cmdline] - [freerdp_client_warn_deprecated]: If you are interested in keeping wlfreerdp alive get in touch with the developers
[22:56:20:178] [154933:00025d35] [WARN][com.freerdp.client.common.cmdline] - [freerdp_client_warn_deprecated]: The project is hosted at https://github.com/freerdp/freerdp and  developers hang out in https://matrix.to/#/#FreeRDP:matrix.org?via=matrix.org - don't hesitate to ask some questions. (replies might take some time depending on your timezone)
[22:56:20:347] [154933:00025d35] [WARN][com.freerdp.crypto] - [verify_cb]: Certificate verification failure 'self-signed certificate (18)' at stack position 0
[22:56:20:347] [154933:00025d35] [WARN][com.freerdp.crypto] - [verify_cb]: CN = WIN-HLR6SN6OEUC
[22:56:20:350] [154933:00025d35] [ERROR][com.winpr.sspi.Kerberos] - [kerberos_AcquireCredentialsHandleA]: krb5_parse_name (Configuration file does not specify default realm [-1765328160])
[22:56:20:350] [154933:00025d35] [ERROR][com.winpr.sspi.Kerberos] - [kerberos_AcquireCredentialsHandleA]: krb5_parse_name (Configuration file does not specify default realm [-1765328160])
[22:56:20:427] [154933:00025d35] [WARN][com.freerdp.core.connection] - [rdp_client_connect_auto_detect]: expected messageChannelId=1009, got 1003
[22:56:20:427] [154933:00025d35] [WARN][com.freerdp.core.license] - [license_read_binary_blob_data]: license binary blob::type BB_ERROR_BLOB, length=0, skipping.
[22:56:20:887] [154933:00025d35] [WARN][com.freerdp.core.connection] - [rdp_client_connect_auto_detect]: expected messageChannelId=1009, got 1003
[22:56:26:214] [154933:00025d53] [WARN][com.freerdp.channels.drdynvc.client] - [check_open_close_receive]: {Microsoft::Windows::RDS::DisplayControl:10} OnOpen=(nil), OnClose=0x7f50c0181840

Edit: force using sdl-freerdp also works fine.

Bilal2453 avatar Oct 18 '25 19:10 Bilal2453

@Bilal2453 What you are doing is launching a full session, which we don't care about; we specifically need them support RAILS a.k.a. single app mode with the /app:program:<windows binary>, which they do not at the moment

oskardotglobal avatar Oct 19 '25 10:10 oskardotglobal

I'd just like to add that I've managed to get this working on hyprland+arch using the default xfreerdp3+xwayland, with a few configuration tweaks in my hyprland config file:

$office_apps = ^(Microsoft (Word|Excel|PowerPoint|Publisher|Powershell|Visual Studio))$
windowrulev2 = suppressevent maximize fullscreen, class:$office_apps

Without these tweaks the window would constantly fullscreen when hovered over.

Jayy001 avatar Dec 15 '25 13:12 Jayy001