### Run WinApps Installer
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Installs WinApps by downloading and executing the setup script. After installation, you can view additional arguments by running `winapps-setup --help`.
```bash
bash <(curl https://raw.githubusercontent.com/winapps-org/winapps/main/setup.sh)
```
--------------------------------
### Install WinApps Setup Script
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Executes the official WinApps setup script downloaded from GitHub. This script automates the installation process of WinApps after the virtual machine environment is prepared.
```bash
bash <(curl https://raw.githubusercontent.com/winapps-org/winapps/main/setup.sh)
```
--------------------------------
### Podman Container Setup and Installation
Source: https://github.com/winapps-org/winapps/blob/main/docs/docker.md
Instructions for initiating Windows installation using podman-compose. This involves navigating to the winapps directory and running the compose command to start the container. Access to the Windows VM is then available via VNC.
```bash
cd winapps
podman-compose --file ./compose.yaml up
```
--------------------------------
### Install VirtIO Drivers and QEMU Guest Agent
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Instructions for installing VirtIO drivers and the QEMU Guest Agent on a Windows virtual machine. This includes running the installer and confirming the agent's status.
```PowerShell
Get-Service QEMU-GA
```
--------------------------------
### Select Local Install Media
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Specifies that the operating system will be installed from a local ISO image.
```bash
Local install media
```
--------------------------------
### Docker Compose: Initial VM Setup and Run
Source: https://github.com/winapps-org/winapps/blob/main/docs/docker.md
Initiates the Windows virtual machine setup using Docker Compose. After running this command, the VM can be accessed via a VNC connection in a web browser to complete the Windows installation.
```bash
cd winapps
docker compose --file ./compose.yaml up
```
--------------------------------
### Docker Compose: Example compose.yaml Configuration
Source: https://github.com/winapps-org/winapps/blob/main/docs/docker.md
Illustrative example of a `compose.yaml` file used by WinApps for configuring Windows VMs. This file allows customization of resources like RAM and CPU cores, and specifies the Windows version to be installed.
```yaml
# Example compose.yaml content (actual file may vary)
# ... other configurations ...
services:
winapps:
image: dockur/windows:latest
environment:
- RAM_SIZE=4096 # Example: 4GB RAM
- CPU_CORES=2 # Example: 2 CPU cores
- VERSION=win10 # Example: Windows 10
# ... other service configurations ...
# ... other compose file sections ...
```
--------------------------------
### Specify Windows ISO Location
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Guides the user to select the Windows ISO file and enables automatic detection of installation media details.
```bash
Browse...
Browse Local
```
--------------------------------
### Install virt-manager
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
This section outlines the initial steps to prepare your system for virtual machine creation, focusing on enabling XML editing within virt-manager.
```bash
virt-manager
```
--------------------------------
### Install WinApps with Nix
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Installs the WinApps package and optionally the WinApps Launcher using the Nix package manager.
```bash
nix profile install github:winapps-org/winapps#winapps
nix profile install github:winapps-org/winapps#winapps-launcher # optional
```
--------------------------------
### CPU Core Mapping Example (Intel)
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Illustrates how CPU cores, threads, and cache levels are mapped on an Intel processor, showing which physical cores share L1, L2, and L3 caches.
```bash
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 4800.0000 400.0000
1 0 0 1 1:1:1:0 yes 4800.0000 400.0000
2 0 0 2 2:2:2:0 yes 4800.0000 400.0000
3 0 0 3 3:3:3:0 yes 4800.0000 400.0000
4 0 0 0 0:0:0:0 yes 4800.0000 400.0000
5 0 0 1 1:1:1:0 yes 4800.0000 400.0000
6 0 0 2 2:2:2:0 yes 4800.0000 400.0000
7 0 0 3 3:3:3:0 yes 4800.0000 400.0000
- C0 = T0+T4 -> L10+L20+L30
- C1 = T1+T5 -> L11+L21+L30
- C2 = T2+T6 -> L12+L22+L30
- C3 = T3+T7 -> L13+L23+L30
```
--------------------------------
### Install Dependencies on openSUSE
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Installs the necessary dependencies for WinApps on openSUSE systems, including curl, dialog, freerdp, git, iproute2, libnotify-tools, and netcat-openbsd.
```bash
sudo zypper install -y curl dialog freerdp git iproute2 libnotify-tools netcat-openbsd
```
--------------------------------
### CPU Core Mapping Example (AMD)
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Illustrates how CPU cores, threads, and cache levels are mapped on an AMD Ryzen processor, showing which physical cores share L1, L2, and L3 caches.
```bash
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 3800.0000 1550.0000
1 0 0 0 0:0:0:0 yes 3800.0000 1550.0000
2 0 0 1 1:1:1:0 yes 3800.0000 1550.0000
3 0 0 1 1:1:1:0 yes 3800.0000 1550.0000
4 0 0 2 2:2:2:0 yes 3800.0000 1550.0000
5 0 0 2 2:2:2:0 yes 3800.0000 1550.0000
6 0 0 3 3:3:3:1 yes 3800.0000 1550.0000
7 0 0 3 3:3:3:1 yes 3800.0000 1550.0000
8 0 0 4 4:4:4:1 yes 3800.0000 1550.0000
9 0 0 4 4:4:4:1 yes 3800.0000 1550.0000
10 0 0 5 5:5:5:1 yes 3800.0000 1550.0000
11 0 0 5 5:5:5:1 yes 3800.0000 1550.0000
- C0 = T0+T1 -> L10+L20+L30
```
--------------------------------
### WinApps Configuration File Example
Source: https://github.com/winapps-org/winapps/blob/main/README.md
A sample configuration file for WinApps, detailing settings for RDP user, password, domain, IP address, VM name, backend flavor, display scaling, removable media paths, and FreeRDP flags.
```ini
##################################
# WINAPPS CONFIGURATION FILE #
##################################
# INSTRUCTIONS
# - Leading and trailing whitespace are ignored.
# - Empty lines are ignored.
# - Lines starting with '#' are ignored.
# - All characters following a '#' are ignored.
# [WINDOWS USERNAME]
RDP_USER="MyWindowsUser"
# [WINDOWS PASSWORD]
# NOTES:
# - If using FreeRDP v3.9.0 or greater, you *have* to set a password
RDP_PASS="MyWindowsPassword"
# [WINDOWS DOMAIN]
# DEFAULT VALUE: '' (BLANK)
RDP_DOMAIN=""
# [WINDOWS IPV4 ADDRESS]
# NOTES:
# - If using 'libvirt', 'RDP_IP' will be determined by WinApps at runtime if left unspecified.
# DEFAULT VALUE:
# - 'docker': '127.0.0.1'
# - 'podman': '127.0.0.1'
# - 'libvirt': '' (BLANK)
RDP_IP="127.0.0.1"
# [VM NAME]
# NOTES:
# - Only applicable when using 'libvirt'
# - The libvirt VM name must match so that WinApps can determine VM IP, start the VM, etc.
# DEFAULT VALUE: 'RDPWindows'
VM_NAME="RDPWindows"
# [WINAPPS BACKEND]
# DEFAULT VALUE: 'docker'
# VALID VALUES:
# - 'docker'
# - 'podman'
# - 'libvirt'
# - 'manual'
WAFLAVOR="docker"
# [DISPLAY SCALING FACTOR]
# NOTES:
# - If an unsupported value is specified, a warning will be displayed.
# - If an unsupported value is specified, WinApps will use the closest supported value.
# DEFAULT VALUE: '100'
# VALID VALUES:
# - '100'
# - '140'
# - '180'
RDP_SCALE="100"
# [MOUNTING REMOVABLE PATHS FOR FILES]
# NOTES:
# - By default, `udisks` (which you most likely have installed) uses /run/media for mounting removable devices.
# This improves compatibility with most desktop environments (DEs).
# ATTENTION: The Filesystem Hierarchy Standard (FHS) recommends /media instead. Verify your system's configuration.
# - To manually mount devices, you may optionally use /mnt.
# REFERENCE: https://wiki.archlinux.org/title/Udisks#Mount_to_/media
REMOVABLE_MEDIA="/run/media"
# [ADDITIONAL FREERDP FLAGS & ARGUMENTS]
# NOTES:
# - You can try adding /network:lan to these flags in order to increase performance, however, some users have faced issues with this.
# DEFAULT VALUE: '/cert:tofu /sound /microphone +home-drive'
# VALID VALUES: See https://github.com/awakecoding/FreeRDP-Manuals/blob/master/User/FreeRDP-User-Manual.markdown
RDP_FLAGS="/cert:tofu /sound /microphone +home-drive"
# [DEBUG WINAPPS]
# NOTES:
```
--------------------------------
### Install virt-manager for Various Linux Distributions
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Installs the virt-manager package, which is a prerequisite for WinApps, using the appropriate package manager for Debian/Ubuntu, Fedora/RHEL, Arch Linux, and Gentoo Linux.
```bash
sudo apt install virt-manager # Debian/Ubuntu
sudo dnf install virt-manager # Fedora/RHEL
sudo pacman -S virt-manager # Arch Linux
sudo emerge app-emulation/virt-manager # Gentoo Linux
```
--------------------------------
### Configure VirtIO Filesystem Service
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Commands to create and start the VirtIO Filesystem service within a Windows PowerShell prompt. This is part of the optional shared folder configuration.
```PowerShell
sc.exe create VirtioFsSvc binpath= "C:\Program Files\Virtio-Win\VioFS\virtiofs.exe" start=auto depend="WinFsp.Launcher/VirtioFsDrv" DisplayName="Virtio Filesystem Service"
sc.exe start VirtioFsSvc
```
--------------------------------
### Install Dependencies on Gentoo Linux
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Installs the required packages for WinApps on Gentoo Linux using emerge, including curl, dialog, freerdp, git, iproute2, libnotify, and openbsd-netcat.
```bash
sudo emerge --ask=n net-misc/curl dev-util/dialog net-misc/freerdp:3 dev-vcs/git sys-apps/iproute2 x11-libs/libnotify net-analyzer/openbsd-netcat
```
--------------------------------
### Update WinApps Installation
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Updates WinApps by first removing the existing installation, pulling the latest changes from the GitHub repository, and then re-installing using the WinApps installer.
```bash
# To remove WinApps, run the installer again.
bash <(curl https://raw.githubusercontent.com/winapps-org/winapps/main/setup.sh)
# Pull the latest changes from the WinApps GitHub repository
git pull origin main
# Re-install WinApps using the WinApps installer
bash <(curl https://raw.githubusercontent.com/winapps-org/winapps/main/setup.sh)
```
--------------------------------
### Bypass Network Requirement in Windows 11 Setup
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
This snippet provides the command to bypass the network connection requirement during Windows 11 installation. It involves opening a command prompt and executing a specific command to allow for a limited setup.
```APIDOC
Windows 11 Network Bypass:
Press "Shift + F10" to open the command prompt.
Enter `OOBE\BYPASSNRO` and press Enter.
The system will restart, allowing you to select "I don't have internet" later.
Note: This command must be run early in the installation process.
```
--------------------------------
### Install Dependencies on Fedora/RHEL
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Installs necessary dependencies for WinApps on Fedora and RHEL-based systems, including curl, dialog, freerdp, git, iproute, libnotify, and nmap-ncat.
```bash
sudo dnf install -y curl dialog freerdp git iproute libnotify nmap-ncat
```
--------------------------------
### Install FreeRDP via Flatpak
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Installs FreeRDP version 3 or later using Flatpak if it's not available through the system's package manager. It also includes an override to allow filesystem access.
```bash
flatpak install flathub com.freerdp.FreeRDP
sudo flatpak override --filesystem=home com.freerdp.FreeRDP # To use `+home-drive`
```
--------------------------------
### Install Dependencies on Debian/Ubuntu
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Installs required packages for WinApps on Debian-based systems, including curl, dialog, freerdp3-x11, git, iproute2, libnotify-bin, and netcat-openbsd.
```bash
sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd
```
--------------------------------
### Virtual Network DHCP Configuration Example
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
An XML snippet demonstrating how to configure DHCP settings for a virtual network. It includes a DHCP range and defines static IP assignments for specific MAC addresses and hostnames.
```xml
```
--------------------------------
### Configure libvirt System URI in /etc/environment
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Adds the LIBVIRT_DEFAULT_URI environment variable to /etc/environment for system-wide configuration, ensuring the installer can detect the VM even if shell configurations are not read.
```bash
echo 'LIBVIRT_DEFAULT_URI="qemu:///system"' | sudo tee -a /etc/environment
```
--------------------------------
### Install Dependencies on Arch Linux
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Installs required packages for WinApps on Arch Linux, such as curl, dialog, freerdp, git, iproute2, libnotify, and openbsd-netcat.
```bash
sudo pacman -Syu --needed -y curl dialog freerdp git iproute2 libnotify openbsd-netcat
```
--------------------------------
### Destroy and Start Virtual Network
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Commands to stop and then restart a virtual network. This is necessary to apply changes made to the network's configuration file, such as static IP assignments.
```bash
virsh net-destroy "default" # Replace with the correct name on your system
virsh net-start "default" # Replace with the correct name on your system
```
--------------------------------
### Managing Podman Container Lifecycle
Source: https://github.com/winapps-org/winapps/blob/main/docs/docker.md
Commands to manage the lifecycle of the Windows VM container managed by podman-compose. This includes starting, pausing, unpausing, restarting, stopping, and forcefully shutting down the container.
```bash
# Stop and remove the existing container.
podman-compose --file ~/.config/winapps/compose.yaml down
# Remove the existing FreeRDP certificate (if required).
# Note: A new certificate will be created when connecting via RDP for the first time.
rm ~/.config/freerdp/server/127.0.0.1_3389.pem
# Re-create the container with the updated configuration.
podman-compose --file ~/.config/winapps/compose.yaml up
```
```bash
podman-compose --file ~/.config/winapps/compose.yaml start # Power on the Windows VM
podman-compose --file ~/.config/winapps/compose.yaml pause # Pause the Windows VM
podman-compose --file ~/.config/winapps/compose.yaml unpause # Resume the Windows VM
podman-compose --file ~/.config/winapps/compose.yaml restart # Restart the Windows VM
podman-compose --file ~/.config/winapps/compose.yaml stop # Gracefully shut down the Windows VM
podman-compose --file ~/.config/winapps/compose.yaml kill # Force shut down the Windows VM
```
--------------------------------
### Run Applications Manually with WinApps
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Executes applications not configured by the WinApps installer using the `manual` flag. Executables in the Windows PATH do not require a full path definition.
```bash
winapps manual "C:\my\directory\executableNotInPath.exe"
winapps manual executableInPath.exe
```
--------------------------------
### Docker Compose: Windows VM Management Commands
Source: https://github.com/winapps-org/winapps/blob/main/docs/docker.md
Provides essential commands for managing the lifecycle of a Windows VM running via Docker Compose. These commands include starting, pausing, resuming, restarting, stopping, and forcefully shutting down the virtual machine.
```bash
docker compose --file ~/.config/winapps/compose.yaml start # Power on the Windows VM
docker compose --file ~/.config/winapps/compose.yaml pause # Pause the Windows VM
docker compose --file ~/.config/winapps/compose.yaml unpause # Resume the Windows VM
docker compose --file ~/.config/winapps/compose.yaml restart # Restart the Windows VM
docker compose --file ~/.config/winapps/compose.yaml stop # Gracefully shut down the Windows VM
docker compose --file ~/.config/winapps/compose.yaml kill # Force shut down the Windows VM
```
--------------------------------
### Test FreeRDP Connection
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Establishes an RDP session to a Windows instance using FreeRDP. Replace placeholders with your actual Windows username, password, and IP address. The command may vary based on your FreeRDP installation (e.g., xfreerdp, xfreerdp3).
```bash
xfreerdp3 /u:"Your Windows Username" /p:"Your Windows Password" /v:192.168.122.2 /cert:tofu
# Or, if you installed FreeRDP using Flatpak
flatpak run --command=xfreerdp com.freerdp.FreeRDP /u:"Your Windows Username" /p:"Your Windows Password" /v:192.168.122.2 /cert:tofu
```
--------------------------------
### Docker Compose: Resetting VM and Removing Resources
Source: https://github.com/winapps-org/winapps/blob/main/docs/docker.md
Command to completely reset the WinApps environment by stopping the Docker Compose services, removing all associated images, and deleting all volumes. This is useful for starting from a clean slate.
```bash
docker compose down --rmi=all --volumes
```
--------------------------------
### Get Windows MAC Address using virsh
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
This command retrieves the MAC address of a specified virtual machine (e.g., 'RDPWindows') by parsing its XML dump. This is a prerequisite for static IP configuration.
```bash
virsh dumpxml "RDPWindows" | grep "mac address"
```
--------------------------------
### FreeRDP Certificate Mismatch Error
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Example output from FreeRDP indicating a certificate name mismatch or host identification change. This typically requires removing outdated RDP TLS certificates associated with the Windows VM.
```text
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: CERTIFICATE NAME MISMATCH! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The hostname used for this connection (192.168.122.2:3389)
does not match the name given in the certificate:
Common Name (CN):
RDPWindows
A valid certificate for the wrong name should NOT be trusted!
The host key for 192.168.122.2:3389 has changed
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the host key sent by the remote host is 8e:b4:d2:8e:4e:14:e7:4e:82:9b:07:5b:e1:68:40:18:bc:db:5f:bc:29:0d:91:83:f9:17:f9:13:e6:51:dc:36
Please contact your system administrator.
Add correct host key in /home/rohanbarar/.config/freerdp/server/192.168.122.2_3389.pem to get rid of this message.
```
--------------------------------
### Test QEMU Guest Agent Communication
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Demonstrates how to test communication between the host GNU/Linux system and the Windows VM via the QEMU Guest Agent. It shows a sample command and expected JSON output.
```Bash
virsh qemu-agent-command RDPWindows '{"execute":"guest-get-osinfo"}' --pretty
```
--------------------------------
### QEMU Guest Agent Configuration (XML)
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Enables communication between the GNU/Linux host and Windows guest using QEMU Guest Agent by adding a channel to the virtual machine's devices.
```XML
```
--------------------------------
### WinApps Backend Configuration
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Instructions on how to change the WinApps backend from Docker to Podman or Libvirt.
```bash
# WAFLAVOR="docker"
# Change to WAFLAVOR="podman" or WAFLAVOR="libvirt"
```
--------------------------------
### Configure VM Resources
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Sets the amount of RAM and CPU cores to be allocated to the Windows virtual machine. Recommends 4096MB RAM and 2 CPUs.
```bash
RAM: 4096MB
CPUs: 2
```
--------------------------------
### Create New Virtual Machine
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Initiates the virtual machine creation process within virt-manager.
```bash
+
```
--------------------------------
### Apply CPU Configuration
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Applies the host CPU configuration to the virtual machine for better compatibility and performance.
```bash
Copy host CPU configuration
```
--------------------------------
### List Available Virtual Networks
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Lists all available virtual networks managed by libvirt. This helps identify the correct network name (often 'default') needed for network configuration edits.
```bash
virsh net-list
```
--------------------------------
### Manually Add Missing Groups to /etc/group
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Provides a snippet to manually add missing groups (like 'kvm') to the /etc/group file and then add the user to that group, addressing potential issues with rpm-ostree.
```bash
grep -E '^kvm:' /usr/lib/group | sudo tee -a /etc/group
sudo usermod -aG kvm $USER
```
--------------------------------
### Name Virtual Machine and Customize Configuration
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Names the virtual machine 'RDPWindows' for WinApps compatibility and enables pre-installation customization.
```bash
Name: RDPWindows
Customize configuration before installation
```
--------------------------------
### Configure libvirt System URI
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Sets the default libvirt URI to 'qemu:///system' by exporting the LIBVIRT_DEFAULT_URI environment variable in the user's shell profile.
```bash
echo 'export LIBVIRT_DEFAULT_URI="qemu:///system"' >> ~/.bashrc
```
--------------------------------
### Windows 11 VM KVM Configuration (XML)
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
This XML file defines the configuration for a Windows 11 virtual machine using KVM. It specifies hardware details such as CPU topology, memory allocation, firmware settings (including secure boot), disk configurations, and PCI device mappings.
```XML
RDPWindows4d76e36e-c632-43e0-83c0-dc9f36c2823a838860883886084hvm/usr/share/edk2/ovmf/OVMF_CODE_4M.secboot.qcow2/var/lib/libvirt/qemu/nvram/RDPWindows_VARS.qcow2destroyrestartdestroy/usr/bin/qemu-system-x86_64
```
--------------------------------
### QEMU Guest Agent OS Information
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
The expected JSON output when querying the QEMU Guest Agent for operating system information from the Windows VM.
```JSON
{
"return": {
"name": "Microsoft Windows",
"kernel-release": "26100",
"version": "Microsoft Windows 11",
"variant": "client",
"pretty-name": "Windows 10 Pro",
"version-id": "11",
"variant-id": "client",
"kernel-version": "10.0",
"machine": "x86_64",
"id": "mswindows"
}
}
```
--------------------------------
### Add User to KVM and libvirt Groups
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Adds the current user to the 'kvm' and 'libvirt' groups to enable rootless libvirt and KVM usage. A system reboot is required for these changes to take effect.
```bash
sudo usermod -a -G kvm $(id -un) # Add the user to the 'kvm' group.
sudo usermod -a -G libvirt $(id -un) # Add the user to the 'libvirt' group.
sudo reboot # Reboot the system to ensure the user is added to the relevant groups.
```
--------------------------------
### View CPU Information
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Displays detailed CPU information including core, cache, and thread associations, used for performance tuning.
```bash
lscpu -e
```
--------------------------------
### Libvirt CPU Pinning Configuration
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Configures CPU pinning for a virtual machine by specifying which host CPU cores virtual CPUs should run on. This is crucial for performance optimization by minimizing cache contention.
```XML
4
```
```XML
6
```
--------------------------------
### Configure virt-manager Preferences
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Enables XML editing in virt-manager, which is necessary for advanced configuration options.
```bash
Edit -> Preferences
```
--------------------------------
### NixOS Configuration with Flakes
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Configures NixOS to include WinApps and the optional WinApps Launcher using Flakes. This involves defining inputs and modules in the flake.nix file.
```nix
# flake.nix
{
description = "My configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
winapps = {
url = "github:winapps-org/winapps";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
inputs@{
nixpkgs,
winapps,
...
}:
{
nixosConfigurations.hostname = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
inherit inputs system;
};
modules = [
./configuration.nix
(
{
pkgs,
system ? pkgs.system,
...
}:
{
environment.systemPackages = [
winapps.packages."${system}".winapps
winapps.packages."${system}".winapps-launcher # optional
];
}
)
];
};
};
}
```
--------------------------------
### Configure Virtual Disk
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Sets the maximum size for the virtual machine's hard disk. The disk will only consume space as needed.
```bash
Set maximum disk size
```
--------------------------------
### Libvirt Hyper-V Enlightenments Configuration
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Enables various Hyper-V enlightenments in the libvirt XML configuration to improve the performance and efficiency of Windows virtual machines.
```XML
```
--------------------------------
### Edit Virtual Network Configuration
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Opens the XML configuration file for a specified virtual network (e.g., 'default') in an editor, allowing for modifications to DHCP settings and static host assignments.
```bash
virsh net-edit "default"
```
--------------------------------
### Command Prompt Information
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Details for Command Prompt, including its executable name and icon source.
```APIDOC
Application: Command Prompt
Executable: cmd.exe
Icon Source: apps/cmd/icon.svg
```
--------------------------------
### Adobe Lightroom Information
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Details for Adobe Lightroom, including its version and icon source.
```APIDOC
Application: Adobe Lightroom
Version: CC
Icon Source: apps/lightroom-cc/icon.svg
```
--------------------------------
### Adobe Audition Information
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Details for Adobe Audition, including its version and icon source.
```APIDOC
Application: Adobe Audition
Version: CC
Icon Source: apps/audition-cc/icon.svg
```
--------------------------------
### WinApps Configuration Settings
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Defines core configuration parameters for WinApps, including debug logging, automatic Windows pausing, and FreeRDP command specification.
```bash
DEBUG="true"
AUTOPAUSE="off"
AUTOPAUSE_TIME="300"
FREERDP_COMMAND=""
```
--------------------------------
### NixOS Configuration without Flakes
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Configures NixOS to include WinApps and the optional WinApps Launcher without using Flakes. This involves setting up binary caches and importing WinApps from a tarball in configuration.nix.
```nix
# configuration.nix
{
pkgs,
system ? pkgs.system,
...
}:
{
# set up binary cache (optional)
nix.settings = {
substituters = [ "https://winapps.cachix.org/" ];
trusted-public-keys = [ "winapps.cachix.org-1:HI82jWrXZsQRar/PChgIx1unmuEsiQMQq+zt05CD36g=" ];
trusted-users = [ "" ]; # replace with your username
};
environment.systemPackages =
let
winapps =
(import (builtins.fetchTarball "https://github.com/winapps-org/winapps/archive/main.tar.gz"))
.packages."${system}";
in
[
winapps.winapps
winapps.winapps-launcher # optional
];
}
```
--------------------------------
### Adobe Photoshop Information
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Details for Adobe Photoshop, including its versions and icon source.
```APIDOC
Application: Adobe Photoshop
Versions: CS6, CC, 2022
Icon Source: apps/photoshop-cc/icon.svg
```
--------------------------------
### Securing WinApps Configuration
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Commands to secure the WinApps configuration file, ensuring only the user account has read/write access.
```bash
chown $(whoami):$(whoami) ~/.config/winapps/winapps.conf
chmod 600 ~/.config/winapps/winapps.conf
```
--------------------------------
### WinApps RDP and FreeRDP Options
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Configuration options for RDP connection details, including IP address, domain, scaling, and additional FreeRDP flags for advanced usage like multi-monitor or Unicode input.
```bash
# RDP_IP=""
# RDP_DOMAIN=""
# RDP_SCALE="100"
# RDP_FLAGS="/multimon /kbd:unicode"
```
--------------------------------
### Adobe Creative Cloud Information
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Details for Adobe Creative Cloud, including its version and icon source.
```APIDOC
Application: Adobe Creative Cloud
Version: CC
Icon Source: apps/adobe-cc/icon.svg
```
--------------------------------
### Adobe After Effects Information
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Details for Adobe After Effects, including its version and icon source.
```APIDOC
Application: Adobe After Effects
Version: CC
Icon Source: apps/aftereffects-cc/icon.svg
```
--------------------------------
### Internet Explorer Information
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Details for Internet Explorer, including its version and icon source.
```APIDOC
Application: Internet Explorer
Version: 11
Icon Source: apps/iexplorer/icon.svg
```
--------------------------------
### Adobe Acrobat Pro Information
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Details for Adobe Acrobat Pro, including its version and icon source.
```APIDOC
Application: Adobe Acrobat Pro
Version: X
Icon Source: apps/acrobat-x-pro/icon.svg
```
--------------------------------
### Microsoft Access Information
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Details for Microsoft Access, including its versions and icon source.
```APIDOC
Application: Microsoft Access
Versions: 2016, 2019, o365
Icon Source: apps/access/icon.svg
```
--------------------------------
### Adobe Bridge Information
Source: https://github.com/winapps-org/winapps/blob/main/README.md
Details for Adobe Bridge, including its versions and icon source.
```APIDOC
Application: Adobe Bridge
Versions: CS6, CC
Icon Source: apps/bridge-cs6/icon.svg
```
--------------------------------
### Libvirt Clock Configuration for Reduced Idle CPU Usage
Source: https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md
Disables all timers except for the hypervclock in the libvirt XML configuration to significantly reduce idle CPU usage in virtual machines.
```XML
```