app-id: org.gameyfin.Gameyfin-Desktop runtime: org.kde.Platform runtime-version: '6.11' sdk: org.kde.Sdk base: com.riverbankcomputing.PyQt.BaseApp base-version: '6.11' command: gameyfin-desktop separate-locales: false sdk-extensions: - org.freedesktop.Sdk.Compat.i386 - org.freedesktop.Platform.VulkanLayer.MangoHud finish-args: # --- Networking & Webview Support --- - --share=network - --share=ipc - --socket=x11 - --socket=wayland - --socket=session-bus - --talk-name=org.freedesktop.secrets # --- Audio & Hardware --- - --socket=pulseaudio - --device=all - --device=input - --allow=devel - --allow=multiarch - --allow=bluetooth - --allow=per-app-dev-shm # --- Filesystem --- - --filesystem=home - --filesystem=xdg-download:create - --filesystem=/run/media - --filesystem=/run/udev:ro - --filesystem=xdg-run/gamescope-0:rw - --filesystem=xdg-config/MangoHud:ro - --filesystem=~/.local/share/umu:rw - --filesystem=xdg-data/umu:rw - --filesystem=~/.steam:rw - --filesystem=~/.local/share/Steam:rw - --filesystem=~/.var/app/com.valvesoftware.Steam:rw # --- System Integration --- - --talk-name=org.freedesktop.Flatpak - --talk-name=org.kde.StatusNotifierWatcher - --talk-name=org.freedesktop.Notifications - --talk-name=org.freedesktop.PowerManagement - --talk-name=org.freedesktop.FileManager1 - --system-talk-name=org.freedesktop.UDisks2 - --system-talk-name=org.freedesktop.UPower # Standard Path setup - --env=PATH=/app/bin:/usr/bin:/app/lib/extensions/vulkan/MangoHud/bin # Ensure i386 libs are found at runtime - --env=LD_LIBRARY_PATH=/app/lib32:/app/lib/i386-linux-gnu:/app/lib:/app/lib/i386-linux-gnu/GL/lib - --env=SteamVirtualGamepadInfo= - --env=QTWEBENGINEPROCESS_PATH=/app/bin/QtWebEngineProcess add-extensions: # Also vendored at build time (see pre-setup module) since this already # ships both x86_64 and i386 MangoHud libs in one extension — there is no # separate ".i386" extension (that name doesn't exist on Flathub), and # `flatpak install`/`flatpak run` don't auto-fetch add-extensions anyway # (https://github.com/flatpak/flatpak/issues/3828). Kept declared so a # system-installed copy transparently overlays the vendored one if present. org.freedesktop.Platform.VulkanLayer.MangoHud: directory: lib/extensions/vulkan/MangoHud version: '25.08' add-ld-path: lib no-autodownload: false autodelete: false # 32-bit runtime compat libraries (glibc, etc.) org.freedesktop.Platform.Compat.i386: directory: lib/i386-linux-gnu version: '25.08' add-ld-path: lib # 32-bit GL drivers - version should match runtime, not legacy '1.4' org.freedesktop.Platform.GL32: directory: lib/i386-linux-gnu/GL version: '1.4' versions: 25.08;1.4 subdirectories: true no-autodownload: false autodelete: false add-ld-path: lib merge-dirs: vulkan/icd.d;glvnd/egl_vendor.d;OpenCL/vendors;lib/dri;lib/d3d;vulkan/explicit_layer.d;vulkan/implicit_layer.d download-if: active-gl-driver enable-if: active-gl-driver autoprune-unless: active-gl-driver modules: - name: pre-setup buildsystem: simple build-commands: - mkdir -p /app/lib/i386-linux-gnu/GL - mkdir -p /app/lib32 - mkdir -p /app/lib/debug/lib/i386-linux-gnu - mkdir -p /app/lib/python3.13/site-packages - mkdir -p /app/etc - mkdir -p /app/lib/extensions/vulkan/MangoHud # FIX: amdgpu hardware ID silence - mkdir -p /app/lib/i386-linux-gnu/GL/default/share/libdrm - touch /app/lib/i386-linux-gnu/GL/default/share/libdrm/amdgpu.ids # for 32 bit games - find /usr/lib/i386-linux-gnu/ -mindepth 1 -maxdepth 1 ! -name GL ! -name extensions -exec cp -a {} /app/lib/i386-linux-gnu/ \; # Vendor MangoHud (both x86_64 and i386 libs ship together in this one - cp -a /usr/lib/extensions/vulkan/MangoHud/bin /usr/lib/extensions/vulkan/MangoHud/lib /usr/lib/extensions/vulkan/MangoHud/share /app/lib/extensions/vulkan/MangoHud/ # --- Tools for Winetricks --- - name: 7zip buildsystem: simple subdir: CPP/7zip/Bundles/Alone2 build-commands: - make -j $FLATPAK_BUILDER_N_JOBS -f makefile.gcc - install -Dm755 ./_o/7zz /app/bin/7zz - ln -s /app/bin/7zz /app/bin/7za sources: - type: archive url: https://github.com/ip7z/7zip/archive/refs/tags/25.01.tar.gz sha256: 8772e4ef86540c98bf4c23a6d9e13b3a25794d4bb30986ef0b1b9f20075b34c9 - name: cabextract sources: - type: archive url: http://archive.ubuntu.com/ubuntu/pool/universe/c/cabextract/cabextract_1.11.orig.tar.gz sha256: b5546db1155e4c718ff3d4b278573604f30dd64c3c5bfd4657cd089b823a3ac6 - name: unrar no-autogen: true make-install-args: [DESTDIR=/app] sources: - type: archive url: https://www.rarlab.com/rar/unrarsrc-7.2.2.tar.gz sha256: 41c00c8755cf5bf6b5d7f0d2d167ee889c2c5352e17e5c9470dbc354af1e71ab - name: winetricks buildsystem: simple build-commands: - install -Dm755 src/winetricks /app/bin/winetricks sources: - type: git url: https://github.com/Winetricks/winetricks.git tag: '20260125' - name: gamemode buildsystem: meson config-opts: [-Dwith-examples=false, -Dwith-util=false, -Dwith-sd-bus-provider=no-daemon] sources: - type: git url: https://github.com/FeralInteractive/gamemode.git tag: 1.8.2 - python-dependencies.json - name: umu-launcher buildsystem: simple build-commands: - python3 -c 'import sysconfig; print(sysconfig.get_path("purelib", vars={"base":"/app"}))' > site_path.txt - mkdir -p $(cat site_path.txt) && cp -r umu $(cat site_path.txt)/ - | cat < /app/bin/umu-run #!/usr/bin/python3 import sys import re from umu.__main__ import main if __name__ == "__main__": sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0]) sys.exit(main()) EOF - chmod +x /app/bin/umu-run sources: - type: git url: https://github.com/Open-Wine-Components/umu-launcher.git tag: 1.4.4 - name: gameyfin-desktop buildsystem: simple build-commands: - mkdir -p /app/share/gameyfin - cp -r gameyfin_frontend /app/share/gameyfin/ - cp gameyfin_qt.py /app/share/gameyfin/ - mkdir -p /app/bin - install -m 755 gameyfin-desktop.sh /app/bin/gameyfin-desktop - mkdir -p /app/share/applications - install -m 644 org.gameyfin.Gameyfin-Desktop.desktop /app/share/applications/ - mkdir -p /app/share/metainfo - install -m 644 org.gameyfin.Gameyfin-Desktop.metainfo.xml /app/share/metainfo/ - mkdir -p /app/share/icons/hicolor/256x256/apps - install -m 644 gameyfin_frontend/icon.png /app/share/icons/hicolor/256x256/apps/org.gameyfin.Gameyfin-Desktop.png sources: - type: dir path: .