<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Fluorine-Manager.git/libs/bsatk, 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/bsatk?h=main</id>
<link rel='self' href='http://git.schererleander.de/Fluorine-Manager.git/atom/libs/bsatk?h=main'/>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/'/>
<updated>2026-04-12T22:55:56Z</updated>
<entry>
<title>Add BSA in-memory extraction and nested preview support</title>
<updated>2026-04-12T22:55:56Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-04-12T22:55:56Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=892070f3dec1dc690983fd862880e37e711c2516'/>
<id>urn:sha1:892070f3dec1dc690983fd862880e37e711c2516</id>
<content type='text'>
bsatk:
- Archive::extractToMemory() extracts a file directly into a byte buffer
  instead of a filesystem path, backed by a std::ostringstream sink.
- Archive::findFile() locates a file by relative path, case-insensitive
  and separator-agnostic, walking the folder tree recursively.
- extractDirect/extractCompressed now take std::ostream&amp; so both the
  ofstream and ostringstream paths share the same implementation.

libbsarch: shim rewrite on Linux to map the Windows API surface onto
bsatk::Archive, enabling preview_bsa to open vanilla BSAs via the
same interface as other plugins.

preview_bsa: double-click on a file in the BSA tree now extracts the
bytes via extractToMemory() and hands them to IOrganizer::previewFileData
for nested preview rendering (e.g. NIF inside a BSA).

uibase + organizerproxy + organizercore: new IOrganizer::previewFileData
virtual that routes in-memory file bytes through the first registered
IPluginPreview matching the extension. Uses heap + WA_DeleteOnClose +
open() to avoid nested exec() softlock from mod info filetree -&gt;
preview_bsa tree -&gt; nif preview.

docker/build-inner.sh: stage preview_nif shaders into plugin_data/shaders
so ShaderManager can load them via IOrganizer::getPluginDataPath().

Co-Authored-By: Claude Opus 4.6 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Remove FUSE passthrough (CAP_SYS_ADMIN incompatible with AppImage), remove bsplugins, fix bsatk types</title>
<updated>2026-03-08T07:25:22Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-03-08T07:25:22Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=2f3efb9100f51833f12f244e993155b85fa59621'/>
<id>urn:sha1:2f3efb9100f51833f12f244e993155b85fa59621</id>
<content type='text'>
- Remove FUSE passthrough code: requesting FUSE_CAP_PASSTHROUGH without
  CAP_SYS_ADMIN caused session cleanup crash on shutdown
- Remove bsplugins library (unneeded port)
- Fix bsatk: use uint32_t instead of unsigned long for BSAULong (LP64 compat)

Co-Authored-By: Claude Opus 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>Migrate data paths to ~/.local/share/fluorine/, add native build, fix %command% and system Proton scanning</title>
<updated>2026-02-14T21:40:33Z</updated>
<author>
<name>SulfurNitride</name>
<email>SulfurNitride@users.noreply.github.com</email>
</author>
<published>2026-02-14T21:40:33Z</published>
<link rel='alternate' type='text/html' href='http://git.schererleander.de/Fluorine-Manager.git/commit/?id=6410929e17d642618f284d5c97d457f1ac653e6e'/>
<id>urn:sha1:6410929e17d642618f284d5c97d457f1ac653e6e</id>
<content type='text'>
- All data paths migrated from ~/.var/app/com.fluorine.manager/ to
  ~/.local/share/fluorine/ so native and Flatpak builds share the same
  instances, plugins, and configs
- New fluorinepaths.h/.cpp with fluorineDataDir() helper and one-time
  migration from old path (writes MOVED.txt breadcrumb)
- New libs/nak/src/paths.rs as Rust equivalent (data_dir())
- Strip %command% tokens from launch wrapper in protonlauncher.cpp
- Always scan /usr/share/steam/compatibilitytools.d/ for system Proton
  packages (Arch installs Proton there); add Flatpak filesystem permission
- Native build (build-native.sh) installs to ~/.local/share/fluorine/
  with desktop entry and ~/.local/bin symlink instead of portable zip
- build-flatpak.sh wrapper for Flatpak builds
- Fix container locale (LANG=C.UTF-8) for AutoUic warnings
- Fix prefixExists() to handle both compatdata and pfx directory layouts
- Fix globalInstancesRootPath() to use fluorineDataDir() on Linux
- Fix umu-run Flatpak lookup to use fluorineDataDir()
- Update README with build instructions and Arch dependency list

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>
