<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Fluorine-Manager.git/libs/plugin_python/src/proxy/proxypython.cpp, branch main</title>
<subtitle>A port of MO2 in linux with NaK integration and FUSE based VFS. Comes with Root Builder support by default.</subtitle>
<id>http://git.schererleander.de/Fluorine-Manager.git/atom/libs/plugin_python/src/proxy/proxypython.cpp?h=main</id>
<link rel='self' href='http://git.schererleander.de/Fluorine-Manager.git/atom/libs/plugin_python/src/proxy/proxypython.cpp?h=main'/>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/'/>
<updated>2026-05-01T15:09:39Z</updated>
<entry>
<title>Remove AppImage build target and runtime references</title>
<updated>2026-05-01T15:09:39Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-05-01T15:09:39Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=af43100e29859adbf5dcb6ee90cd8f981439b859'/>
<id>urn:sha1:af43100e29859adbf5dcb6ee90cd8f981439b859</id>
<content type='text'>
We ship via portable tarball directory + .bin self-extracting installer
only; the AppImage path was unmaintained and pulling in linuxdeploy
tooling for a format we no longer publish.

Build:
- build.sh: drop appimage/all-includes-appimage modes (now: tarball,
  installer, all=both, shell). Output listing tracks the directory.
- docker/Dockerfile: drop BUILD_APPIMAGE arg and the linuxdeploy
  download/extract block.
- docker/build-inner.sh: drop build_appimage() (~120 lines), AppImage
  arm of the BUILD_MODE switch, *.AppImage summary listing.
- docker/AppRun.sh: deleted.
- .gitignore: drop *.AppImage / squashfs-root / *.flatpak entries.

Runtime: no longer key off APPIMAGE/APPDIR env vars or AppRun-set
state. The fluorine-manager launcher script already exports
FLUORINE_ORIG_*, MO2_BASE_DIR, MO2_PLUGINS_DIR, MO2_LIBS_DIR,
MO2_PYTHON_DIR for the same purpose, so simplify:
- envshortcut: appImageOrBinary -&gt; launcherOrBinary; bundledFluorineIcon
  no longer probes APPDIR.
- nxmhandler: drop APPIMAGE-based wrapper path; use applicationFilePath.
- protonlauncher: rename cleanAppImageEnv -&gt; cleanFluorineEnv, drop
  APPIMAGE/APPDIR/OWD/ARGV0/APPIMAGE_ORIGINAL_EXEC/DESKTOPINTEGRATION
  removals and .mount_Fluori pattern strip.
- prefixsetuprunner: same env-cleaning trim.
- utility, library.h, proxypython, mainwindow, moapplication, appconfig:
  comment cleanup pointing at the launcher instead of AppRun.

Co-Authored-By: Claude Opus 4.7 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Clean up remaining Linux packaging names</title>
<updated>2026-04-29T20:35:56Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-04-29T20:35:56Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=6243e1a79550e9cff9837f5449f3b9150127b8e8'/>
<id>urn:sha1:6243e1a79550e9cff9837f5449f3b9150127b8e8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace winetricks dependency setup with native implementations</title>
<updated>2026-04-05T07:30:19Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-04-05T07:30:19Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=391b9f13cff5937426353bb0bba8c39ca67c1d64'/>
<id>urn:sha1:391b9f13cff5937426353bb0bba8c39ca67c1d64</id>
<content type='text'>
Direct DLL extraction and installer execution instead of shelling out
to winetricks for all prefix dependencies. Fixes d3dcompiler_47 being
sourced from wrong SDK cabs (broke CommunityShaders), and eliminates
the fragile cabextract-in-pressure-vessel PATH issue.

- d3dcompiler_47: direct download from Mozilla fxc2 repo
- d3dcompiler_43, d3dx9, d3dx11_43: cabextract from DirectX June 2010
  redist with correct system32/syswow64 mapping
- xact/xact_x64: cab extraction + batched regsvr32 registration
- vcrun2022: direct installer with msvcp140.dll workaround (Wine #57518)
- dotnet6/7/8, dotnetdesktop6: direct x86+x64 installer pairs
- Game detection: batched into single .reg file import
- All DLL overrides added to WINE_SETTINGS_REG
- SHA256 verification for downloaded files
- Winetricks kept only for win11 mode step

Co-Authored-By: Claude Opus 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Replace Rust prefix setup with C++ step-by-step dialog</title>
<updated>2026-04-03T16:49:38Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-04-03T16:49:38Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=d2eec897b2ec1022744a993135e3595c8fea005b'/>
<id>urn:sha1:d2eec897b2ec1022744a993135e3595c8fea005b</id>
<content type='text'>
Move Wine prefix creation from NaK Rust FFI to native C++ with a new
modal dialog showing per-step progress, retry support, and proper
failure cleanup.

- PrefixSetupRunner: runs each step (proton init, drive cleanup, 11
  individual winetricks verbs, .NET installers, game detection, wine
  registry, win11 mode, post-setup) as discrete retryable operations
- PrefixSetupDialog: step list with status icons, filtered log output,
  cancel/retry-failed/delete-prefix buttons
- Downloads use QNetworkAccessManager (no host curl dependency)
- Zip extraction uses downloaded 7zz binary (no host unzip dependency)
- Winetricks runs on host (not in pressure-vessel) so cabextract is
  always findable via PATH
- Wine/winetricks debug spam filtered from log output
- Skip Python basic_games proxy since native equivalent exists

Co-Authored-By: Claude Opus 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Block rootbuilder directory plugin in Python proxy</title>
<updated>2026-03-28T23:41:51Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-03-28T23:41:51Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=747f32a1fa2ac2a7af6293d2ed83ee3dbe7986ca'/>
<id>urn:sha1:747f32a1fa2ac2a7af6293d2ed83ee3dbe7986ca</id>
<content type='text'>
The hard-blacklist in plugincontainer.cpp only catches rootbuilder at the
top-level scan, but the Python proxy independently scans the plugins
directory for packages (dirs with __init__.py) and was still loading it.

Co-Authored-By: Claude Opus 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Multi-dir plugin loading, VFS Root Builder, Wine registry check, column visibility fix</title>
<updated>2026-03-22T19:40:24Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-03-22T19:40:24Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=613a0e702403d5f8122861bb76a6ba2e184efe97'/>
<id>urn:sha1:613a0e702403d5f8122861bb76a6ba2e184efe97</id>
<content type='text'>
Plugin loading:
- Remove symlink-based ensureBundledPluginsLinked(), replace with multi-dir
  search (bundled dir takes priority, instance dir adds extras only)
- Auto-clean stale symlinks from instance plugins/ dirs on startup
- Add mergedProxyList() for proxy plugin discovery across both dirs

VFS Root Builder (replaces Python rootbuilder.py):
- Native C++ Root Builder integrated into FuseConnector
- Deploy mod Root/ files to game dir before FUSE mount, clear on unmount
- Per-instance toggle in Instance Manager (default: on)
- Root Builder path normalization in processrunner.cpp: rewrite binary and
  start-in paths from mods/.../Root/ to Game Root for correct Wine path
  resolution (fixes SKSE + EngineFixes versionlib lookup)
- Expose game dir and prefix to SLR pressure-vessel via --filesystem=

Wine registry check:
- Read/write Wine prefix system.reg (HKLM) with timestamp-aware parsing
- Auto-check game install path before launch, prompt to fix if mismatched
- Updates both Software\ and Wow6432Node\ registry keys

Column visibility fix:
- Guard updateGroupByProxy() during QHeaderView::restoreState() to prevent
  sort indicator restoration from triggering setSourceModel() which resets
  all columns to visible

Python proxy:
- Skip FixGameRegKey.py, crashlogtools, rootbuilder.py (Windows-only or
  replaced by native implementations)

Co-Authored-By: Claude Opus 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add Python init diagnostics, AppImage build system, misc Linux fixes</title>
<updated>2026-02-19T23:25:48Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-19T23:25:48Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=5467e210668eb24de9a4429ef0ddcbc6442e8932'/>
<id>urn:sha1:5467e210668eb24de9a4429ef0ddcbc6442e8932</id>
<content type='text'>
- python: switch Py_InitializeEx → Py_InitializeFromConfig for explicit
  error reporting; add dladdr + fprintf diagnostics to trace which DSO
  Python symbols resolve to and whether Py_IsInitialized succeeds
- python: log RTLD_NOLOAD vs fresh-load outcome when promoting libpython
  to RTLD_GLOBAL
- build: add Docker-based AppImage build script (build.sh), update
  Dockerfile and build-inner.sh for AppImage-only workflow
- build: remove Flatpak support entirely; move AppImage metadata
  (desktop/metainfo/icon) from flatpak/ to data/
- Add Monster Hunter Wilds basic_games plugin
- .gitignore: exclude squashfs-root, build-source, flatpak-repo,
  __pycache__, fomod-plus-settings.ini
- Various Linux port fixes across wineprefix, processrunner, proton
  launcher, FUSE connector, instance manager, download manager,
  sanitychecks, and NaK Rust paths/runtime_wrap

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add FUSE external mapping support, BG3/Oblivion Remastered fixes, fomod-plus and NaK integration</title>
<updated>2026-02-14T08:45:25Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-14T08:45:12Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=817e8f5cd26739c69d930d21cd9dc4c0b6e4984e'/>
<id>urn:sha1:817e8f5cd26739c69d930d21cd9dc4c0b6e4984e</id>
<content type='text'>
FUSE VFS now deploys non-data-dir mod mappings (Paks, OBSE, UE4SS, etc.)
via real symlinks and injects file-level data-dir mappings (plugins.txt,
loadorder.txt) into the VFS tree. Fixes game launches for Oblivion
Remastered (Root Builder path resolution, script extender support) and
BG3 (Wine prefix documents directory, file mapper symlinks on Linux).

Vendors mo2-fomod-plus plugin and NaK crate for FOMOD installer and
game finder/runtime support.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fluorine Manager: full Linux port of Mod Organizer 2</title>
<updated>2026-02-11T08:37:39Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-11T08:37:39Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=7ee008e150bc5bcf76082d726f719ee0fdfda982'/>
<id>urn:sha1:7ee008e150bc5bcf76082d726f719ee0fdfda982</id>
<content type='text'>
Complete native Linux port with FUSE-based virtual filesystem,
Proton/umu-run integration, and Flatpak packaging.

Key features:
- FUSE VFS replacing Windows USVFS (in-process + standalone helper for Flatpak)
- Proton/GE-Proton/umu-run launcher with env var forwarding
- Flatpak support (sandbox-aware VFS, NXM handler, umu-run)
- Wine prefix management UI
- Case-insensitive path resolution for Linux filesystems
- QSettings-safe INI handling (avoids Bethesda INI corruption)
- Portable instance support with auto-generated launcher scripts

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
