Runs a real Windows app from a layered Wine prefix: a vanilla "Virgo" base plus one immutable layer per dependency/app, mounted with the fvs2d FUSE daemon, with file and registry changes captured per layer and replayed at launch.
It also shows the Flatpak deploy model: the Flatpak ships the tools but, since
FUSE cannot be mounted inside the sandbox, runs them on the host through
flatpak-spawn --host.
flatpak run com.usebottles.LayersTest demo:
- creates a clean Virgo prefix (
wineboot) and commits it as the base layer - installs a dependency with real Wine (registry key + a dll), captures it as a layer
- builds a Notepad++ app layer
- mounts Virgo + dependency + Notepad++ as one prefix
- real Wine reads the composed prefix (dependency registry value + files)
- launches Notepad++ from the layered prefix
The manifest builds the tools (fvs2d, fvs2, regdiff) from their git repos.
flatpak run org.flatpak.Builder --force-clean --user --install build-dir \
com.usebottles.LayersTest.yml
flatpak run com.usebottles.LayersTest demoWine is provided host-side by a self-contained Bottles runner (e.g. Soda); see
bottles-host for the expected layout ($HOME/wine-test/soda).
bottles-layers.shhost harness:commit | mount | capture | umount | winebottles-demo.shthe demo abovebottles-hostFlatpak entry point, runs the tools on the hostcom.usebottles.LayersTest.ymlFlatpak manifest