### 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 RDPWindows 4d76e36e-c632-43e0-83c0-dc9f36c2823a 8388608 8388608 4 hvm /usr/share/edk2/ovmf/OVMF_CODE_4M.secboot.qcow2 /var/lib/libvirt/qemu/nvram/RDPWindows_VARS.qcow2 destroy restart destroy /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 ```