diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-11 02:37:39 -0600 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-11 02:37:39 -0600 |
| commit | 7ee008e150bc5bcf76082d726f719ee0fdfda982 (patch) | |
| tree | 27fb39be241fdb5ac2734c574de678977d1856d0 /flatpak/flatpak-install.sh | |
Fluorine Manager: full Linux port of Mod Organizer 2
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 <noreply@anthropic.com>
Diffstat (limited to 'flatpak/flatpak-install.sh')
| -rwxr-xr-x | flatpak/flatpak-install.sh | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/flatpak/flatpak-install.sh b/flatpak/flatpak-install.sh new file mode 100755 index 0000000..e52497e --- /dev/null +++ b/flatpak/flatpak-install.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +# Build the Fluorine Manager Flatpak. +# +# Usage: +# cd flatpak && bash flatpak-install.sh # build & install locally +# cd flatpak && bash flatpak-install.sh bundle # build a .flatpak file to share +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PROJECT_DIR="$(dirname "${SCRIPT_DIR}")" +MANIFEST="${SCRIPT_DIR}/com.fluorine.manager.yml" +APP_ID="com.fluorine.manager" +BUILD_DIR="${PROJECT_DIR}/.flatpak-build" +MODE="${1:-install}" + +# ── Ensure flathub remote exists ── +if ! flatpak remote-list --user | grep -q flathub; then + echo "Adding flathub remote..." + flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +fi + +# ── Install required Flatpak runtime and SDK ── +echo "Installing KDE Platform and SDK (may take a while on first run)..." +flatpak install --user --noninteractive flathub org.kde.Platform//6.10 org.kde.Sdk//6.10 + +echo "Installing Rust SDK extension..." +flatpak install --user --noninteractive flathub org.freedesktop.Sdk.Extension.rust-stable//25.08 + +cd "${PROJECT_DIR}" + +if [ "${MODE}" = "bundle" ]; then + # ── Build a distributable .flatpak file ── + echo "" + echo "Building Flatpak bundle (this may take a while)..." + flatpak-builder --repo="${PROJECT_DIR}/flatpak-repo" --force-clean \ + "${BUILD_DIR}" "${MANIFEST}" + flatpak build-bundle "${PROJECT_DIR}/flatpak-repo" "${PROJECT_DIR}/fluorine-manager.flatpak" "${APP_ID}" + BUNDLE_SIZE="$(du -sh fluorine-manager.flatpak | cut -f1)" + echo "" + echo "=== Bundle created: fluorine-manager.flatpak (${BUNDLE_SIZE}) ===" + echo "" + echo "Share this file with testers. They install it with:" + echo " flatpak install --user fluorine-manager.flatpak" +else + # ── Build and install locally ── + echo "" + echo "Building and installing Flatpak locally (this may take a while)..." + flatpak-builder --install --user --force-clean \ + "${BUILD_DIR}" "${MANIFEST}" + echo "" + echo "=== Flatpak installed successfully ===" +fi + +echo "" +echo "Usage:" +echo " flatpak run ${APP_ID} # launch GUI" +echo " flatpak run ${APP_ID} create-portable --name myinstance --game falloutnv" +echo " flatpak run ${APP_ID} list-instances" |
