> ## Documentation Index
> Fetch the complete documentation index at: https://docs.boat.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Run an app

> Install and start a Windows app in a sandbox. Recipes for Steam, Paint.NET, Sysinternals and Direct3D games.

Before you start, [install Wine](/windows-apps/install-wine).

## Install and start an app

1. Download the official installer or portable archive in the sandbox.
2. Install it.
3. Start it on the desktop. Every GUI command needs `DISPLAY=:0`.

This example installs the MicroDicom medical image viewer and opens a CT scan:

```bash theme={null}
export DISPLAY=:0
curl -fsSL -o /tmp/microdicom.exe https://www.microdicom.com/downloads/Software/MicroDicom-2026.4-Setup.exe
wine /tmp/microdicom.exe /S
curl -fsSL -o ~/CT_small.dcm https://github.com/pydicom/pydicom/raw/main/src/pydicom/data/test_files/CT_small.dcm
cd "$HOME/.wine/drive_c/Program Files/MicroDicom"
wine mDicom.exe 'Z:\home\user\CT_small.dcm' &
```

On the first start, MicroDicom asks to become the default viewer. It does not open the file. To open the scan:

1. Press Escape.
2. Close MicroDicom.
3. Run the last command again.

After this, the scan opens immediately.

## Tips

* Use `wine start /unix <path>` to start a program. `start` gives the program normal Windows console handles. Without it, programs written in Python (Blender, FreeCAD) and many others crash.

* Most installers have a silent switch:

  | Installer type | Silent switch |
  | - | - |
  | NSIS | `/S` |
  | Inno Setup | `/VERYSILENT` |
  | MSI | `msiexec /i app.msi /qn` |

* To find an official download link, open the app's manifest in [winget-pkgs](https://github.com/microsoft/winget-pkgs/tree/master/manifests). The `InstallerUrl` field is the vendor's own link.

* Windows paths map to Linux paths:

  | Windows path | Linux path |
  | - | - |
  | `C:\` | `~/.wine/drive_c` |
  | `Z:\` | The Linux root `/` |

## Steam

Steam has these needs:

* It needs the Arial font.
* It must not use Wine's DirectWrite.
* Its web view must not use a GPU.

```bash theme={null}
export DISPLAY=:0
winetricks -q arial
wine reg add 'HKCU\Software\Wine\AppDefaults\steam.exe\DllOverrides' /v dwrite /t REG_SZ /d '' /f
curl -fsSL -o /tmp/SteamSetup.exe https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe
wine /tmp/SteamSetup.exe /S
wine start 'C:\Program Files (x86)\Steam\steam.exe' -no-dwrite -cef-disable-gpu -cef-disable-sandbox
```

The first start updates Steam and takes about 2 minutes. Then the sign-in window opens.

## Paint.NET

Paint.NET 5.2 has a separate [build for Wine](https://github.com/paintdotnet/Paint.NET-on-Wine).

* It needs Wine 11.15 or newer. The [Wine set-up](/windows-apps/install-wine) installs this version.
* Its installer makes its own Wine set-up and needs Wine Mono. So it opens the "Wine Mono Installer" window.
* The `xdotool` loop below presses **Install** for you.

```bash theme={null}
export DISPLAY=:0
mkdir -p ~/apps/paintnet && cd ~/apps/paintnet
curl -fsSL -o pdn.zip "$(curl -s https://api.github.com/repos/paintdotnet/Paint.NET-on-Wine/releases \
  | grep -o '"browser_download_url": *"[^"]*x64[^"]*\.zip"' | cut -d'"' -f4 | head -1)"
unzip -q pdn.zip
( for i in $(seq 1 120); do
    w=$(wmctrl -l | grep 'Wine Mono Installer' | awk '{print $1}')
    [ -n "$w" ] && { wmctrl -i -a $w; sleep 0.5; xdotool key Return; break; }
    sleep 2
  done ) &
./install.sh
./paintdotnet.sh &
```

* Use the `x64` file. The release also has an `arm64` file. That file does not run on a sandbox.
* The Wine build is experimental. It expires 12 weeks after its build date. When it expires, download a new one.
* Paint.NET 5.1 and older do not run.

## Sysinternals

Process Explorer and Autoruns show a licence window on the first start. Accept the licence before the start, so that an agent does not have to. Autoruns rejects the `/accepteula` flag. So set the registry value for both apps:

```bash theme={null}
export DISPLAY=:0
curl -fsSL -o /tmp/procexp.zip https://download.sysinternals.com/files/ProcessExplorer.zip
curl -fsSL -o /tmp/autoruns.zip https://download.sysinternals.com/files/Autoruns.zip
mkdir -p ~/apps/sysinternals && cd ~/apps/sysinternals
unzip -qo /tmp/procexp.zip && unzip -qo /tmp/autoruns.zip
wine reg add 'HKCU\Software\Sysinternals\Process Explorer' /v EulaAccepted /t REG_DWORD /d 1 /f
wine reg add 'HKCU\Software\Sysinternals\Autoruns' /v EulaAccepted /t REG_DWORD /d 1 /f
wine start /unix ~/apps/sysinternals/procexp64.exe
```

## Direct3D games

DXVK from the Wine set-up runs Direct3D 8, 9, 10 and 11 games on the software Vulkan driver.

| Game type | Speed |
| - | - |
| Simple 2D games and older 3D games | Playable |
| Modern 3D games | Too slow without a GPU |

Old games that change the screen resolution can leave a full-screen window over the desktop. To stop Wine from changing the resolution, run:

```bash theme={null}
wine reg add 'HKCU\Software\Wine\X11 Driver' /v UseXRandR /t REG_SZ /d N /f
wine reg add 'HKCU\Software\Wine\X11 Driver' /v UseXVidMode /t REG_SZ /d N /f
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.