Winmin is a set of scripts and tools for installing, managing, and running Windows on Linux applications using libvirt virtual machines.
- python3
Build and install with:
$ meson build
$ ninja -C build install
- python3
- python3-magic
- python-is-python3
- libvirt-clients
- libvirt-daemon-system
- virtinst
- samba
- winmin-viewer
In order to use Winmin, you need to set up a base VM using winmin-setup.
To access the spice socket of the guest VM, the user must be part of the kvm
group. This can be added using the following command.
$ sudo usermod -aG $USER kvm
In order to interact with the guest serial port, the user must be part of the tty
group. This can be added using the following command.
$ sudo usermod -aG $USER tty
You may need to logout or reboot in order for group changes to take effect.
In order to transfer files between the host and guest, a samba server must be set up. To set this up, add the following to the end of /etc/samba/smb.conf
.
[winmin]
comment = VM Filesystem
path = /
browseable = yes
read only = no
After changing the samba config, add an smb account for your user.
$ sudo smbpasswd -a $USER
Then restart the samba service.
$ sudo systemctl restart smbd
Enable the service if not automatically enabled
$ sudo systemctl enable smbd
Installs a package given an exe or msi file. This will create a new vm with the base created using winmin-setup as a backing file. The --web
flag will open a link in the guest's default web browser where a user can manually download an installer (This is useful for applications that require sign-in to download).
winmin-install [-h] [--web] input shortname
winmin-install ./vs_community.exe visualstudiocommunity
winmin-install --web https://office.com/ ms-office
This tool installs a package given a Winmin .yaml
package file. This tool also automatically creates .desktop
files for the packages specefied within the .yaml
files.
winmin-yml-install [-h] input
winmin-yml-install ./ms-office.yaml
This tool runs an installed application in the specified Winmin VM. By default, the VM is destroyed once its window is closed. Using the --save
flag changes this so the VM is saved instead (Saving takes a longer time, and attempting to open an application while its VM is being saved will not work). This tool can be run with input file.
winmin-run [-h] [--save] vm program name [input]
winmin-run winmin-msoffice Word Word ./File.docx
winmin-run winmin-msoffice Outlook Outlook --save
- Add direct binding to libvirt virtual machines using the python libvirt API
- Add a yaml file generator similar to that of winget
- Fix install file logic in winmin-yml-install
- Add options for more descriptive
.desktop
files in.yaml
files - Add and test arument support (other than input files)