Skip to main content

WinBoat

WinBoat_logo.png

WinBoat – Running Windows on Linux

WinBoat 0.9.0 includes improved configuration options, such as custom FreeRDP Arguments, USB passthrough and display scaling.

This version has been tested on:

  • Dell Precision 5860 workstations
  • Lenovo ThinkPad P16 Gen 2 laptops

1. Using WinBoat

Starting and stopping Windows

The Home page shows whether the WinBoat Docker container is currently running.


Screenshot from 2026-07-29 15-10-14.png

Normally:

  • The container starts automatically when WinBoat is opened.
  • The container stops after Windows has been shut down.

If Windows has been shut down and you want to start it again:

  1. Open the Home page in WinBoat.
  2. Click the Play button to start the Docker container.
  3. Wait until the container is shown as running and WinBoat Guest API displays Online.
  4. Open Windows Desktop.

If the container does not start automatically when WinBoat is opened, click the Play button manually. Windows Desktop cannot be opened until the container is running and WinBoat Guest API is online.

Using a USB device in Windows

To make a USB device available inside Windows:

  1. Open WinBoat.
  2. Click the Settings gear icon.
  3. Enable Experimental Features.
  4. Find USB Passthrough on the same Settings page.
  5. Click Add Device.
  6. Select the device that you want to use inside Windows.

Screenshot from 2026-07-29 15-21-51.png

The list can include USB drives, external storage devices and other compatible USB hardware.

If the device does not appear inside Windows, close Windows Desktop completely and open it again.

Once a device is added to Windows, it will no longer be available in Linux.

Screenshot from 2026-07-29 15-23-14.png

To make the device available in Linux again:

  1. Return to Settings → USB Passthrough.
  2. Find the device in the list.
  3. Click the minus () button next to it.

WinBoat remembers the selected device. If the device is still connected when WinBoat is started again, it will automatically be passed through to Windows and will disappear from Linux until it is removed from the USB Passthrough list.


Changing the display size

Open WinBoat, click the Settings gear icon and scroll down to the FreeRDP settings.

Display Scaling

Display Scaling changes the size of the complete Windows desktop.

A value between 100% and 180% can be selected. This is the recommended scaling option when Windows is opened through Windows Desktop.

Application Scaling

Application Scaling only affects Windows applications opened individually from the WinBoat application list.

Opening applications separately is currently not recommended because performance can be noticeably worse. For normal use, open the complete Windows Desktop instead.


Screenshot from 2026-07-29 15-24-30.png

Adjusting the Windows Desktop resolution

If Display Scaling at 180% is still insufficient:

  1. Open WinBoat.
  2. Click the Settings gear icon.
  3. Scroll down to the FreeRDP settings.
  4. Enable FreeRDP Arguments – Advanced.
  5. Click Add Argument.
  6. Enter an argument such as:
/smart-sizing:3840x2160


  1. Close Windows Desktop completely.
  2. Open Windows Desktop again to apply the change.

Start with the native resolution of the monitor:

Monitor resolution FreeRDP argument
Full HD /smart-sizing:1920x1080
QHD /smart-sizing:2560x1440
4K /smart-sizing:3840x2160


The lower Windows resolution is enlarged to fill the available window, making the interface appear larger.

Display Scaling and smart sizing work together. Some combinations may make the Windows interface too large, too small, blurry or distorted.

For the best result:

  1. Start with the native resolution of the monitor.
  2. Adjust Display Scaling.
  3. If necessary, change the smart-sizing resolution.
  4. Change only one setting at a time and reopen Windows Desktop after each change.

If text and icons are still too small, try a lower resolution. For example, on a 4K monitor:

/smart-sizing:2560x1440


For best image proportions, use a resolution with the same aspect ratio as the monitor. For example, use a 16:9 resolution on a 16:9 screen.

2. NVIDIA driver

The NVIDIA 595 driver has worked well with WinBoat on the Dell Precision 5860 and Lenovo ThinkPad P16 Gen 2 systems.

Install it with:

sudo apt update
sudo apt install nvidia-driver-595
sudo reboot


The nvidia-driver-595 package is available for Ubuntu 24.04.

After restarting, verify that the driver is active:

nvidia-smi


This installs the NVIDIA driver on the Linux host. It does not install an NVIDIA driver inside the Windows virtual machine.


3. Updating WinBoat to version 0.9.0

A normal update does not require reinstalling Docker, FreeRDP or Windows.

First, download the new package:

Download WinBoat 0.9.0 for Ubuntu/Debian

If the file is stored directly in Downloads, update WinBoat with:

sudo apt update
sudo apt install ~/Downloads/winboat-0.9.0-amd64.deb


When version 0.9.0 is already installed, APT displays:

winboat is already the newest version (0.9.0).


After updating:

  1. Close and reopen WinBoat.
  2. Allow the WinBoat Guest Server to update if requested.
  3. Open the Windows Desktop.
  4. Test one Windows application.

Version 0.9.0 automatically performs the necessary migrations from older WinBoat versions. No manual migration or removal of the existing Windows machine should be necessary.

Do not use Reset or Remove VM for a normal update. These options can delete the existing Windows installation and its applications.

4. Complete WinBoat installation

Use this section for a new computer or when WinBoat and its required components must be installed again.

Download WinBoat

Download the Debian package:

Download WinBoat 0.9.0 for Ubuntu/Debian

The installation script must be executed from the directory containing:

winboat-0.9.0-amd64.deb


WinBoat requires KVM virtualization, Docker or Podman, Docker Compose when using Docker, and FreeRDP 3. Docker Desktop is not supported.

Installation script

Create the installation script:

nano install-winboat.sh


Paste the script content into Nano. In the terminal, use:

Ctrl + Shift + V

#!/usr/bin/env bash

set -e

WINBOAT_PACKAGE="winboat-0.9.0-amd64.deb"

# Check whether the WinBoat package is in the current directory
if [ ! -f "$WINBOAT_PACKAGE" ]; then
    echo "Error: $WINBOAT_PACKAGE was not found."
    echo "Run this script from the directory containing the downloaded package."
    exit 1
fi

# Repair incomplete packages and update Ubuntu
sudo apt --fix-broken install -y
sudo apt update
sudo apt upgrade -y

# Install curl
sudo apt install -y curl

# Install Docker if it is not already installed
if ! command -v docker >/dev/null 2>&1; then
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    rm -f get-docker.sh
else
    echo "Docker is already installed."
fi

# Create the Docker group if it does not already exist
getent group docker >/dev/null || sudo groupadd docker

# Add the current user to the Docker group
sudo usermod -aG docker "$USER"

# Enable and start Docker
sudo systemctl enable docker
sudo systemctl start docker

# Install Docker Compose
sudo apt update
sudo apt install -y docker-compose-plugin

# Install FreeRDP 3
sudo apt install -y freerdp3-x11 freerdp3-wayland

# Load the network modules used by WinBoat
printf "ip_tables\niptable_nat\n" |
    sudo tee /etc/modules-load.d/iptables.conf >/dev/null

# Install WinBoat
sudo apt install -y "./$WINBOAT_PACKAGE"

echo
echo "WinBoat installation completed."
echo "The computer will now restart."

sudo reboot

Save the file:

Ctrl + O


Press Enter to confirm the filename, and then close Nano:

Ctrl + X


Execute the script

Open a terminal in the directory containing the script and the .deb file.

For example:

cd ~/Downloads


Make the script executable:

chmod +x install-winboat.sh


Run it:

./install-winboat.sh


The computer restarts at the end so that the new Docker group membership becomes active.