app-id: com.anonlisten.Hollow runtime: org.freedesktop.Platform runtime-version: '24.08' sdk: org.freedesktop.Sdk command: hollow-wrapper finish-args: # Display (x11 required — Flutter frameless windows need X11 backend) - --share=ipc - --socket=x11 - --socket=wayland # Network (relay, WebRTC, STUN/TURN) - --share=network # Audio (PulseAudio/PipeWire for voice calls) - --socket=pulseaudio # Camera (video calls) - --device=all # File access (downloads, file transfers) - --filesystem=xdg-download # Real home: the single-instance lock and crash log live at ~/Hollow, and # file pickers browse it. The data root itself is the sandbox's own # ~/.var/app/com.anonlisten.Hollow/data/hollow. - --filesystem=home # Session bus. The runner is a GtkApplication with an application-id # (D-Bus-unique so hollow:// deep links reach the running instance), so # g_application_register() has to own com.anonlisten.Hollow on the session # bus. Behind the filtered bus proxy that RequestName came back as # GDBus.Error:ServiceUnknown and the app exited before showing a window — # every user had to grant this by hand in Flatseal first (issue #59). - --socket=session-bus - --own-name=com.anonlisten.Hollow # In-app updater. It downloads the signed, hash-verified .flatpak bundle and # installs it on the HOST via `flatpak-spawn --host flatpak install`, then # relaunches through `flatpak run`. --socket=session-bus above already grants # the org.freedesktop.Flatpak name that flatpak-spawn talks to; this line # states the dependency so nobody narrows the bus filter and silently kills # Linux updates. - --talk-name=org.freedesktop.Flatpak # Desktop notifications - --talk-name=org.freedesktop.Notifications # Tray icon (AppIndicator) - --talk-name=org.kde.StatusNotifierWatcher - --talk-name=org.freedesktop.portal.Desktop # OS keychain (identity-at-rest protection via libsecret) - --talk-name=org.freedesktop.secrets # GPU acceleration - --device=dri modules: # Hollow application (pre-built bundle with all dependencies) - name: hollow buildsystem: simple build-commands: - install -Dm755 hollow /app/bin/hollow # Screen share audio helper (optional — build-flatpak.sh warns when absent) - if [ -f screen_audio_capturer ]; then install -Dm755 screen_audio_capturer /app/bin/screen_audio_capturer; fi - cp -r lib /app/bin/lib - cp -r data /app/bin/data # Bundle system libraries not in the Freedesktop runtime - cp -r syslibs/* /app/bin/lib/ # Wrapper script that sets LD_LIBRARY_PATH so the binary finds all .so files - | cat > /app/bin/hollow-wrapper <<'WRAPPER' #!/bin/bash export LD_LIBRARY_PATH=/app/bin/lib:$LD_LIBRARY_PATH exec /app/bin/hollow "$@" WRAPPER - chmod +x /app/bin/hollow-wrapper - install -Dm644 com.anonlisten.hollow.png /app/share/icons/hicolor/256x256/apps/com.anonlisten.Hollow.png - install -Dm644 com.anonlisten.Hollow.desktop /app/share/applications/com.anonlisten.Hollow.desktop - install -Dm644 com.anonlisten.Hollow.metainfo.xml /app/share/metainfo/com.anonlisten.Hollow.metainfo.xml sources: - type: dir path: bundle