app-id: io.github.countgitmick.FreeTubePlusTabs runtime: org.freedesktop.Platform runtime-version: '24.08' sdk: org.freedesktop.Sdk base: org.electronjs.Electron2.BaseApp base-version: '24.08' command: run.sh separate-locales: false finish-args: - --device=dri - --share=ipc - --share=network - --socket=x11 - --socket=wayland - --socket=pulseaudio - --filesystem=xdg-download - --own-name=org.mpris.MediaPlayer2.chromium.* - --own-name=org.mpris.MediaPlayer2.freetube - --talk-name=org.freedesktop.Notifications - --talk-name=org.freedesktop.PowerManagement - --talk-name=org.freedesktop.ScreenSaver - --talk-name=org.gnome.SessionManager - --talk-name=org.gnome.SettingsDaemon - --talk-name=org.kde.StatusNotifierWatcher # Explicit XDG portal talk-names. Electron auto-detects most of these but # being explicit makes the sandbox easier to audit and avoids subtle # regressions when the runtime tightens portal defaults. - --talk-name=org.freedesktop.portal.Desktop - --talk-name=org.freedesktop.portal.OpenURI - --talk-name=org.freedesktop.portal.FileChooser - --talk-name=org.freedesktop.portal.Settings modules: # FUTURE WORK: build from source instead of unpacking a release zip. # Steps required: # 1. Add the Node.js SDK extension (org.freedesktop.Sdk.Extension.node22) # via `sdk-extensions:` and `build-options.append-path:`. # 2. Replace the binary `url:` sources with a `type: git` source pointing # at the repo, plus a generated-sources.json produced by # `flatpak-node-generator npm package-lock.json`. # 3. Run `npm install --offline` and `npm run pack` in build-commands, # then wrap with the BaseApp's bundled electron. # 4. The Nix flake's buildPhase (flake.nix:55–60) is the working reference. # Until that work lands, this module stays as a portable-zip wrapper. # Note: VA-API hardware decode is now enabled at runtime via main process # command-line switches (src/main/index.js after the disable-http-cache block), # so the binary build inherits the same flags as the Nix build. - name: freetube-plus-tabs buildsystem: simple sources: - type: file only-arches: [x86_64] url: https://github.com/countgitmick/FreeTubePlusTabs/releases/download/v0.24.3/freetube-plus-tabs-0.24.3-beta-linux-x64-portable.zip sha256: 3fc72e2ded7cc83249cd8b243da7dda521ade261e1eb0afc2c99e98643ddd2fe - type: file only-arches: [aarch64] url: https://github.com/countgitmick/FreeTubePlusTabs/releases/download/v0.24.3/freetube-plus-tabs-0.24.3-beta-linux-arm64-portable.zip sha256: 0bd2a273000075072c606746e16fadd46a2b6aba6b91b5a0f1e3fe3ec1ba2689 - type: file url: https://raw.githubusercontent.com/countgitmick/FreeTubePlusTabs/development/_icons/icon.svg sha256: ad11ea5cb7e91bf61e268ed0d2b8c04aaa4a179e6be055195c4717af7737b60f - type: file path: run.sh - type: file path: io.github.countgitmick.FreeTubePlusTabs.desktop - type: file path: io.github.countgitmick.FreeTubePlusTabs.metainfo.xml build-commands: - install -d /app/lib/freetube-plus-tabs - bsdtar -xf freetube-plus-tabs-*.zip -C /app/lib/freetube-plus-tabs - install -Dm755 run.sh /app/bin/run.sh - install -Dm644 icon.svg /app/share/icons/hicolor/scalable/apps/io.github.countgitmick.FreeTubePlusTabs.svg - install -Dm644 io.github.countgitmick.FreeTubePlusTabs.desktop -t /app/share/applications/ - install -Dm644 io.github.countgitmick.FreeTubePlusTabs.metainfo.xml -t /app/share/metainfo/ - patch-desktop-filename "${FLATPAK_DEST}"/lib/freetube-plus-tabs/resources/app.asar