<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Fluorine-Manager.git/src/plugins/rootbuilder.py, 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/src/plugins/rootbuilder.py?h=main</id>
<link rel='self' href='http://git.schererleander.de/Fluorine-Manager.git/atom/src/plugins/rootbuilder.py?h=main'/>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/'/>
<updated>2026-03-22T19:40:24Z</updated>
<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>Fix Wine prefix deployment, INI handling, and data directory paths</title>
<updated>2026-02-18T05:59:48Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-18T05:59:40Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=480a57cf037a46f176128e6c94aa5616fcf704a3'/>
<id>urn:sha1:480a57cf037a46f176128e6c94aa5616fcf704a3</id>
<content type='text'>
- Fix data directory path to use ~/.var/app/com.fluorine.manager consistently
  (was ~/.local/share/fluorine in committed code)
- Fix VFS helper path in fuseconnector.cpp to use fluorineDataDir()
- Fix localAppFolder() to resolve Wine prefix AppData/Local on Linux
  instead of returning XDG ~/.local/share
- Add localAppName() virtual method for correct AppData folder mapping
  (Enderal→"enderal", Nehrim→"Oblivion")
- Fix mergeTweak() to use direct INI parser instead of QSettings which
  corrupts backslashes and URL-encodes spaces in keys
- Make resolveWineDataDirName() more robust with existence checks and
  fallback chain (documentsDirectory → gameShortName → gameName)
- Add comprehensive debug logging throughout Wine prefix deployment
- Fix INI case handling: copy instead of symlink for case-mismatched INIs,
  ensure both proper-case and lowercase aliases exist
- Remove native build script (Flatpak only)

Co-Authored-By: Claude Opus 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>Add Root Builder plugin, Linux game detection, and OMOD installer fix</title>
<updated>2026-02-12T01:04:11Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-12T01:04:11Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=8a10147bbb1fe6589c4205bcfd26d6d696512ced'/>
<id>urn:sha1:8a10147bbb1fe6589c4205bcfd26d6d696512ced</id>
<content type='text'>
- New native Root Builder plugin (src/plugins/rootbuilder.py) with copy
  and symlink deploy modes, auto-deploy hooks, backup/restore, and
  third-party conflict detection that moves incompatible plugins to
  DisabledPlugins/. In link mode, .exe/.dll are always copied to avoid
  Wine/Proton path resolution issues with symlinked executables.

- Fix basic_games detection on Linux: steam_utils now checks native
  Steam paths (~/.local/share/Steam, Flatpak, Snap), epic_utils uses
  correct Linux Heroic config paths, gog_utils falls back to Heroic
  GOG installed.json when Windows registry is unavailable.

- Fix OMOD installer crash: isArchiveSupported now handles both IFileTree
  (from mod list refresh) and string (from install check) arguments.

- Add flatpak manifest step to copy source-tree Python plugins
  (src/plugins/*.py) into the build output.

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