feat: Flatpak packaging for the HeiniRemote agent
Build and Publish HeiniRemote Agent Flatpak / build (push) Failing after 4m52s

Bundles the agent as de.pc_heini.HeiniRemoteAgent on the freedesktop 24.08
runtime, mirroring the o3de-flatpak CI approach (bwrap-free build, OSTree
repo force-pushed to pages, single-file bundle attached to a Gitea release).
Compiles the agent from upstream source (newest v* tag, else main).

Sandbox notes: screen capture/input via portals need no special permission;
the PTY console uses flatpak-spawn --host for a real host shell, and a native
install's agent.toml is adopted read-only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
pc-heiniandClaude Fable 5 committed 2026-07-07 01:56:06 +02:00
commit 801db2871b
11 files changed
+486

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
#!/bin/sh
# Flatpak entry point for the HeiniRemote agent.
#
# Two sandbox adaptations, no agent code changes:
#
# 1. The PTY console (agent's console.rs) spawns $SHELL. Inside the sandbox
# that would be a sandboxed shell showing the Flatpak filesystem — useless
# as a rescue console. Point it at the host-shell bridge instead, which
# escapes to the real host login shell via flatpak-spawn.
#
# 2. Config migration: the agent reads $XDG_CONFIG_HOME/heiniremote/agent.toml,
# which Flatpak redirects to ~/.var/app/<id>/config/. If no config exists
# there yet but a native install left one at ~/.config/heiniremote/
# (visible read-only via --filesystem=xdg-config/heiniremote:ro), use that
# via the agent's HEINIREMOTE_CONFIG override.
export SHELL=/app/bin/host-shell
if [ -z "${HEINIREMOTE_CONFIG:-}" ] \
&& [ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/heiniremote/agent.toml" ] \
&& [ -f "$HOME/.config/heiniremote/agent.toml" ]; then
export HEINIREMOTE_CONFIG="$HOME/.config/heiniremote/agent.toml"
fi
exec /app/bin/heiniremote-agent "$@"