# ProtonShift Flatpak manifest. # # This variant builds LOCALLY: it allows network during the build and pip-installs # PySide6 (the freedesktop runtime ships no Qt, so the wheel bundles it). That is # the fast, reliable way to prove the package runs — including on a Steam Deck in # Desktop Mode. # # For a FLATHUB submission, network during build is not allowed: replace the pip # install with vendored sources generated by flatpak-pip-generator (see # flatpak/README.md). Everything else stays the same. # # Build + install: # flatpak run org.flatpak.Builder --user --install --force-clean \ # build-dir flatpak/io.github.i4ctime.protonshift.yml # Run: # flatpak run io.github.i4ctime.protonshift app-id: io.github.i4ctime.protonshift runtime: org.freedesktop.Platform runtime-version: "24.08" sdk: org.freedesktop.Sdk command: protonshift finish-args: - --share=ipc - --socket=wayland - --socket=fallback-x11 - --device=dri # game controllers (gamepad tester + rumble ioctls). The narrow `input` # device class needs flatpak >= 1.16, which CI's apt flatpak-builder # predates — `all` is the compatible superset here; the Flathub manifest # (flatpak/flathub/) keeps `input` since Flathub's builders are current. - --device=all # ProtonShift reads game libraries (read-only home) and writes only the # specific config dirs below. `home` rw + org.freedesktop.Flatpak talk-name # is a Flathub-rejected combination (it is a sandbox escape); restoring a # save backup to an arbitrary native path now requires the file portal. - --filesystem=home:ro - --filesystem=~/.config/protonshift:create - --filesystem=~/.config/scopebuddy:create - --filesystem=~/.config/MangoHud:create - --filesystem=~/.config/environment.d:create # default target dir for save-backup restores - --filesystem=~/ProtonShift Restores:create - --filesystem=~/.steam - --filesystem=~/.local/share/Steam - --filesystem=~/.var/app/com.valvesoftware.Steam - --filesystem=~/.config/heroic - --filesystem=~/.var/app/com.heroicgameslauncher.hgl # so detected host tools (gamescope, mangohud, protontricks) can be run - --talk-name=org.freedesktop.Flatpak modules: # QtNetwork (pulled in transitively by QtQml, and thus by the PySide6 wheel) # links Kerberos libs the freedesktop base runtime doesn't ship. Bundle them. - name: krb5 buildsystem: autotools subdir: src config-opts: - --disable-static - --disable-nls - --without-libedit - --without-readline cleanup: - /bin - /sbin - /share - /lib/pkgconfig - /include sources: - type: archive url: https://kerberos.org/dist/krb5/1.21/krb5-1.21.3.tar.gz sha256: b7a4cd5ead67fb08b980b21abd150ff7217e85ea320c9ed0c6dadd304840ad35 - name: protonshift buildsystem: simple build-options: # LOCAL build only — Flathub forbids network here (vendor instead). build-args: - --share=network build-commands: - pip3 install --prefix=${FLATPAK_DEST} --no-warn-script-location PySide6 vdf . - install -Dm644 flatpak/io.github.i4ctime.protonshift.desktop ${FLATPAK_DEST}/share/applications/io.github.i4ctime.protonshift.desktop - install -Dm644 flatpak/io.github.i4ctime.protonshift.metainfo.xml ${FLATPAK_DEST}/share/metainfo/io.github.i4ctime.protonshift.metainfo.xml - install -Dm644 flatpak/icons/io.github.i4ctime.protonshift-256.png ${FLATPAK_DEST}/share/icons/hicolor/256x256/apps/io.github.i4ctime.protonshift.png - install -Dm644 flatpak/icons/io.github.i4ctime.protonshift-128.png ${FLATPAK_DEST}/share/icons/hicolor/128x128/apps/io.github.i4ctime.protonshift.png - install -Dm644 flatpak/icons/io.github.i4ctime.protonshift-64.png ${FLATPAK_DEST}/share/icons/hicolor/64x64/apps/io.github.i4ctime.protonshift.png sources: - type: dir path: ..