Skip to content

Script installer: remove no-op webview2 component; write dxvk.conf to fix black context menus (#72) - #133

Open
bluejorts wants to merge 2 commits into
seapear:mainfrom
bluejorts:installer-fixes
Open

Script installer: remove no-op webview2 component; write dxvk.conf to fix black context menus (#72)#133
bluejorts wants to merge 2 commits into
seapear:mainfrom
bluejorts:installer-fixes

Conversation

@bluejorts

Copy link
Copy Markdown

Two fixes to Guides/Wine/Script Installer/affinity_installer_unified.py:

1. Drop webview2 from the winetricks component list

winetricks has no webview2 verb. When the component list reaches it, winetricks prints its usage/help text and installs nothing, so every install has been silently skipping it (check any prefix's winetricks.log: webview2 never appears). Removing it makes the install honest. Leaving WebView2 out is also the desired behaviour: installing the Edge WebView2 runtime under Wine is reported to make Affinity's onboarding/help dialogs hang (see discussion in noahc3/AffinityPluginLoader#46).

2. Write dxvk.conf when DXVK is enabled, fixing black right-click menus (#72)

With DXVK enabled, Affinity's right-click/context menus and flyout popups render as black boxes (#72). This is doitsujin/dxvk#2749: DXVK leaves D3D9 popup surfaces uninitialised until they're presented, which hits WPF apps like Affinity. The fix already confirmed by several users in #72:

d3d9.deferSurfaceCreation = True
d3d9.shaderModel = 1

The installer now writes this to dxvk.conf next to Affinity.exe and registers the path as DXVK_CONFIG_FILE in HKCU\Environment. The value is the native Linux path, since DXVK opens it directly on the host. This way it applies no matter which launcher or working directory is used.

Testing

Verified on Wine 11.13 + DXVK 3.0.2, Affinity 3.2.3.4646, Arch Linux, KDE Plasma Wayland, NVIDIA RTX 3090: with the config in place, canvas context menus render fully (previously solid black), and DXVK's log confirms Effective configuration: d3d9.shaderModel = 1, d3d9.deferSurfaceCreation = True. The embedded bash passes bash -n and the file passes py_compile.

bluejorts and others added 2 commits July 20, 2026 20:36
winetricks has no 'webview2' verb; when the component list reaches it,
winetricks prints its usage text and installs nothing, so every install
has silently skipped it (the prefix winetricks.log never lists it).
Leaving WebView2 out is also the desired behaviour: installing the Edge
WebView2 runtime under Wine makes Affinity's onboarding and help dialogs
hang (see noahc3/AffinityPluginLoader#46 discussion).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
When DXVK is enabled, Affinity's right-click/context menus and flyout
popups render as black boxes. This is doitsujin/dxvk#2749: DXVK leaves
D3D9 popup surfaces uninitialised until presented, which hits WPF apps
like Affinity. Multiple users in seapear#72 confirmed the fix:

    d3d9.deferSurfaceCreation = True
    d3d9.shaderModel = 1

Write this to dxvk.conf next to Affinity.exe and register the path in
HKCU\Environment as DXVK_CONFIG_FILE (native Linux path; DXVK opens it
directly on the host) so it applies regardless of which launcher or
working directory is used. Verified on Wine 11.13 + DXVK 3.0.2, NVIDIA
RTX 3090, KDE Plasma Wayland, Affinity 3.2.3.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant