GitHub - winapps-org/winapps: Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/ why not just run it in a VM?
There’s also Bottles, a user-friendly Wine prefix manager. It’s available as a Flatpak.
Regarding the WinApps VM approach: I guess this is way more robust than any Wine-based solution, so looks very interesting!
Personally, I don’t need any Windows apps. But having a ujust
helper in the uBlue images to install WinApps (the com.freerdp.FreeRDP
Flatpak + Windows in a Podman container) could be a massive selling point for Bluefin & Co…
dockur works well for me for the occasional time I need to run something under Windows for work.
That’s really cool, had not see this.
Yeah, it’s kind of magical.
We use their qemu image for testing. Pretty nice solution for VMs
Does it work with Podman?
I’m not sure. I didn’t go in depth with it.
Based on this part, it seems like it should be supported. I’ll try just replacing docker
with podman
in the commands, should have some time tomorrow since it’s Worker’s Day (national holiday).
Looks like that’s how Winapps works when you use it with a docker or podman backend - winapps/compose.yaml at a4d30724b588cea9c3c60279d8773d320f621594 · winapps-org/winapps · GitHub
(There is also an alternative setup where you create a more conventional Windows VM in libvirt.)
Theoretically, which one should have more footprint and performance? libvirt?
Not sure if dockur does the same thing, but Winapps integrate with Nautilus and the apps show up like Native apps.
When you use dockur, you get the Windows UI in a browser window. QEMU.
From dockur’s README (haven’t used it myself yet):
The web-viewer is mainly meant to be used during installation, as its picture quality is low, and it has no audio or clipboard for example.
So for a better experience you can connect using any Microsoft Remote Desktop client to the IP of the container, using the username
Docker
and passwordadmin
.There is a RDP client for Android available from the Play Store and one for iOS in the Apple Store. For Linux you can use FreeRDP and on Windows just type
mstsc
in the search box.
So in the end, it seems to me that the WinApps project is mostly UX sugar around underlying tech incl. dockur and FreeRDP. Exemplary separation of concerns – as careful OSS projects often do (looking especially at you, Universal Blue and friends!).
Good to know, thanks!
I tried WinApps yesterday but got blocked on sharing files with host, which was my main point for trying; something about iptables needing priviliged access (ref). Dockur worked out of the box though, using podman. Their documentation seems to be more polished also.
Related: My laptop is dual boot Win11 and Bluefin. I haven’t used windows since January. Discounting research and finding my bitlocker key, it only took 10 minutes to turn in the windows volume into a VM using virt-manager
! (1. use lsblk
to get disk name, 2. Instruct virt-manager
to use this device as storage. It creates a link file that points the device.)
Oh wow this is an interesting topic.
A ujust script for either WinApps or Dockur would be nice. Especially if it adds a shortcut (.desktop) for users to open Windows in a Gnome Connections RDP session, and with the Nautilus integration.
Hope this will become reality soon. Not that I rely on Windows for vital tasks but it’s really a nice to have for those situations where you can’t get around it. Like upgrading a firmware of some device where the manufacturer only makes a tool available for Windows or whatever.
The starting point for something like dockur exists.
We use the plain qemu version for iso-testing.
Here are my notes to get dockurr/windows
running on the latest bluefin
.
I had issues with btrfs
so I made a new ext4 partition and mounted it as /run/media/my_user/windows
. I am open to recommendations about a more appropriate mount point.
I had some issues with selinux. Here is the module type-enforcement file podman-windows.te
:
module podman-windows 1.0;
require {
type container_t;
type tun_tap_device_t;
type unlabeled_t;
class dir { read write add_name remove_name create rmdir };
class file { ioctl lock open read write unlink create setattr append };
class chr_file { getattr ioctl open read write };
}
#============= container_t ==============
allow container_t tun_tap_device_t:chr_file { getattr ioctl open read write };
allow container_t unlabeled_t:dir { read write add_name remove_name create rmdir };
allow container_t unlabeled_t:file { ioctl lock open read write unlink create setattr append };
Which is installed via:
sudo checkmodule -M -m -o podman-windows.mod podman-windows.te
sudo semodule_package -o podman-windows.pp -m podman-windows.mod
sudo semodule -i podman-windows.pp
Then the following command seems to work:
podman run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "/run/media/my_user/windows:/storage" --stop-timeout 120 dockurr/windows
I am working on a podman quadlet for this, I will post it when (if) I get it working.
I have not exercised the resulting Windows VM much yet.
Hi all trying to follow the Winapps Install guide but testing the RDP connection I get the following error:
[12:35:04:470] [71090:000115b4] [WARN][com.freerdp.client.xfreerdp.utils] - [run_action_script]: [ActionScript] no such script '/var/home/alice/.config/freerdp/action.sh'
[12:35:04:471] [71090:000115b4] [WARN][com.freerdp.client.xfreerdp.utils] - [run_action_script]: [ActionScript] no such script '/var/home/alice/.config/freerdp/action.sh'
[12:35:04:504] [71090:000115b4] [ERROR][com.freerdp.codec] - [openh264_init]: Failed to create OpenH264 decoder
[12:35:04:504] [71090:000115b4] [WARN][com.freerdp.core.codecs] - [freerdp_client_codecs_prepare]: Failed to create h264 codec context
[12:35:04:522] [71090:000115b4] [ERROR][com.freerdp.core.transport] - [transport_default_write]: BIO_should_retry returned a system error 32: Broken pipe
[12:35:04:522] [71090:000115b4] [ERROR][com.freerdp.core] - [transport_default_write]: ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D]
[12:35:04:533] [71090:000115b4] [ERROR][com.freerdp.codec] - [openh264_init]: Failed to create OpenH264 decoder
[12:35:04:533] [71090:000115b4] [WARN][com.freerdp.core.codecs] - [freerdp_client_codecs_prepare]: Failed to create h264 codec context
[12:35:04:550] [71090:000115b4] [ERROR][com.freerdp.core.transport] - [transport_default_write]: BIO_should_retry returned a system error 32: Broken pipe
[12:35:04:550] [71090:000115b4] [ERROR][com.freerdp.core] - [transport_default_write]: ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D]
[12:35:04:550] [71090:000115b4] [ERROR][com.freerdp.core] - [freerdp_connect]: freerdp_post_connect failed
I have tried removing security (tofu) from the config file but there has been no success. Any help or if I need to make a new thread please LMK