English · Italiano
Guide to install and run FlutterFlow Desktop (official Windows build) on Linux through Wine, with no container and no VM.
Unofficial project. Not affiliated with or supported by FlutterFlow, Inc., Google or Microsoft. This repo contains only scripts and documentation: no third-party binary is redistributed, the installers are downloaded from the official sources at run time. FlutterFlow and WebView2 remain subject to their respective licenses.
Verified on:
| Component | Version |
|---|---|
| Distro | Manjaro Linux (rolling), kernel 7.1.1 |
| Desktop | KDE Plasma on Wayland (Wine windows run through XWayland) |
| Wine | 11.11 (wine package, not staging) |
| wine-mono | 11.1.0 |
| GPU | Intel Iris Xe (TigerLake-LP GT2), Mesa driver |
| FlutterFlow | Windows build downloaded on 2026-08-03 (Inno Setup 6.7 installer) |
| WebView2 Runtime | 151.0.4129.59 |
git clone <this-repo> flutterflow-desktop-linux
cd flutterflow-desktop-linux
./install-flutterflow-wine.shThe script is idempotent: you can re-run it without breaking anything. It does everything described manually in section 2 and installs:
- the Wine prefix in
~/.local/share/wineprefixes/flutterflow - the launcher in
~/.local/bin/flutterflow-wine - the menu entry in
~/.local/share/applications/flutterflow-wine.desktop
The installers (≈340 MB total) are cached in ~/.cache/flutterflow-wine.
Start:
flutterflow-wineor from the application menu ("FlutterFlow").
sudo pacman -S wine wine-mono curlmultilib must be enabled in /etc/pacman.conf (it is by default on Manjaro).
No winetricks, no wine-staging, no DXVK needed.
The FlutterFlow download link is not in an <a href> on the page: it is built by the JS
bundle https://www.flutterflow.io/_astro/desktop.*.js. The stable direct URL is:
mkdir -p ~/.cache/flutterflow-wine && cd ~/.cache/flutterflow-wine
# FlutterFlow Desktop, Windows build (~141 MB)
curl -L -o flutterflow-latest-windows-setup.exe \
https://storage.googleapis.com/flutterflow-downloads/windows/flutterflow-latest-windows-setup.exe
# Microsoft Edge WebView2 Evergreen, standalone x64 (~200 MB)
curl -L -o MicrosoftEdgeWebView2RuntimeInstallerX64.exe \
"https://go.microsoft.com/fwlink/?linkid=2124701"If you need an earlier version, the same URLs exist with the suffixes
windows-v6-3/andwindows-v6-4/instead ofwindows/.
Do not use ~/.wine: FlutterFlow installs the WebView2 runtime (full Chromium) into
the prefix, and it is better to keep it isolated from your other Windows programs.
export WINEPREFIX=$HOME/.local/share/wineprefixes/flutterflow
export WINEARCH=win64
wineboot --init
winecfg -v win10The installer is Inno Setup 6.7, so it accepts the standard silent flags:
cd ~/.cache/flutterflow-wine
wine flutterflow-latest-windows-setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-Result: $WINEPREFIX/drive_c/Program Files/FlutterFlow/flutterflow.exe.
The Visual C++ runtimes (msvcp140.dll, vcruntime140*.dll, concrt140.dll) already ship
inside the app folder: winetricks vcrun2019 is not needed.
FlutterFlow uses WebView2 (Chromium) for the Monaco code editor, the previews and the embedded web panels. Without it the app starts but those areas stay blank.
wine MicrosoftEdgeWebView2RuntimeInstallerX64.exe /silent /installCheck:
ls "$WINEPREFIX/drive_c/Program Files (x86)/Microsoft/EdgeWebView/Application/"
# -> 151.0.4129.59cd "$WINEPREFIX/drive_c/Program Files/FlutterFlow"
WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS="--no-sandbox --disable-gpu" wine flutterflow.exeThe flutterflow-wine launcher in this repo does exactly this, plus:
WINEDLLOVERRIDES=winemenubuilder.exe=d— stops Wine from rewriting the menu entry on every startunset XMODIFIERS GTK_IM_MODULE QT_IM_MODULE— prevents fcitx5/ibus from capturing the keyboardWINEDEBUG=-all— clean output (FF_DEBUG=1for the full log in~/.cache/flutterflow-wine.log)
| Feature | Status | Notes |
|---|---|---|
| Application start | ✅ | 1272x686 window, no crash |
| Flutter rendering (ANGLE → D3D11 → wined3d/OpenGL) | ✅ | Fonts, gradients, shadows and icons correct |
| Keyboard | ✅ | Verified with synthetic input on a dedicated X server |
| Mouse / click | ✅ | |
| Network + TLS + Firebase Auth | ✅ | Login with wrong credentials → real server response: Incorrect email or password. Please double check and try again. |
| Google login (OAuth) | ✅ | Opens the system browser (not WebView2) on accounts.google.com/o/oauth2/v2/auth with redirect_uri=http://127.0.0.1:<port>. The loopback works under Wine. |
| WebView2 runtime installed and registered | ✅ | Key HKLM\Software\Wow6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-...} present |
| Menu entry + icon | ✅ | Icon extracted automatically by Wine into ~/.local/share/icons/hicolor/256x256/apps/ |
| Using the editor after login | Requires credentials of a real account, not available during setup. |
They show up on every start and do not indicate a problem:
[ERROR:flutter/shell/platform/windows/direct_manipulation.cc(199)] viewport_->AddEventHandler(...) failed
Windows::Graphics::Capture::GraphicsCaptureSession is not supported.
err:combase:RoGetActivationFactory Failed to find library for L"Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager"
err:combase:RoGetActivationFactory Failed to find library for L"Windows.System.Profile.PlatformDiagnosticsAndUsageDataSettings"
ERROR:third_party\crashpad\...\filesystem_win.cc:128] GetFileAttributes ...\Crashpad\attachments\<uuid>: File non trovato. (0x2)
These are, respectively: Windows touchpad gestures not emulated, WinRT screen capture
missing, WinRT authentication APIs missing (unused, browser OAuth is used instead), and
crashpad looking for optional attachments. No minidump is generated in Crashpad/reports/.
Almost always caused by an input method (fcitx5 / ibus) capturing the events.
The launcher already removes XMODIFIERS/GTK_IM_MODULE/QT_IM_MODULE. To re-enable the
IME (e.g. to type Chinese/Japanese):
FF_KEEP_IME=1 flutterflow-wineThe WebView2 runtime is not installed or not registered. Repeat step 2.5 and check that the
EdgeWebView/Application/<version> folder exists in the prefix.
If WebView2 is installed but the content still does not appear, force software rendering:
WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS="--no-sandbox --disable-gpu --single-process" flutterflow-wineFlutterFlow uses WinSparkle and on first start asks "Check for updates automatically?".
It is safe to answer yes: the updater downloads the same Inno Setup installer and runs it in
the same prefix. If something goes wrong, turn it off and update by hand by re-running
install-flutterflow-wine.sh after clearing the cache:
rm ~/.cache/flutterflow-wine/flutterflow-latest-windows-setup.exe
./install-flutterflow-wine.shThe KDE session is Wayland but Wine runs with the X11 driver via XWayland, which is the
most stable path. Wine's native Wayland driver (winecfg → Graphics) is still experimental
and is not needed. No configuration required.
Automation note: XTEST synthetic events (xdotool type) do not reach Wine windows under
XWayland because keyboard focus is handled by the compositor. For automated tests use a
dedicated X server:
Xvfb :99 -screen 0 1920x1080x24 +extension GLX +extension RANDR &
DISPLAY=:99 flutterflow-wineOn Intel Iris Xe the rendering goes ANGLE → D3D11 → wined3d → OpenGL and is smooth.
If you need more performance you can try DXVK (winetricks dxvk), but it is not needed
and adds a Vulkan dependency.
rm -rf ~/.local/share/wineprefixes/flutterflow
rm -f ~/.local/bin/flutterflow-wine
rm -f ~/.local/share/applications/flutterflow-wine.desktop
rm -rf ~/.cache/flutterflow-wine
rm -f ~/.local/share/icons/hicolor/*/apps/*flutterflow*
update-desktop-database ~/.local/share/applications| File | Purpose |
|---|---|
install-flutterflow-wine.sh |
End-to-end automatic install |
flutterflow-wine |
Launcher with the right environment |
README.md |
This guide (English) |
README.it.md |
Italian version of this guide |
LICENSE |
MIT |
MIT — see LICENSE.