Add flatpak packaging target

electron-builder already bundles @malept/flatpak-bundler, so this just
adds the target + a finishArgs set matching the app's actual needs:
wayland/x11 rendering, PipeWire for WebRTC screen/mic capture (on top
of the base pulseaudio socket), camera device access, and the
freedesktop notifications + portal bus names (native/linux-portals
handles file chooser/background/global-shortcuts through the latter).
Bumped runtime/base to 23.08 from electron-builder's very old 20.08
default.

Building this target requires flatpak + flatpak-builder installed on
the build machine (Linux-only, can't run on macOS at all), plus the
org.freedesktop.Platform/Sdk and org.electronjs.Electron2.BaseApp
23.08 runtimes from Flathub.
This commit is contained in:
2026-07-03 12:12:57 -04:00
parent eca57c85ef
commit 6b2e9ec669
@@ -1256,11 +1256,38 @@ module.exports = {
target: 'tar.gz', target: 'tar.gz',
arch: targetArchs, arch: targetArchs,
}, },
{
target: 'flatpak',
arch: targetArchs,
},
], ],
desktop: { desktop: {
entry: linuxDesktopEntry, entry: linuxDesktopEntry,
}, },
}, },
flatpak: {
runtimeVersion: '23.08',
baseVersion: '23.08',
finishArgs: [
// Wayland/X11 rendering
'--socket=wayland',
'--socket=x11',
'--share=ipc',
// OpenGL
'--device=dri',
// Camera (native/mac-* equivalents on Linux go through /dev/video*)
'--device=all',
// Audio output + WebRTC screen/mic capture via PipeWire
'--socket=pulseaudio',
'--socket=pipewire',
'--filesystem=home',
'--share=network',
// System notifications
'--talk-name=org.freedesktop.Notifications',
// XDG portals (file chooser, background, global shortcuts -- see native/linux-portals)
'--talk-name=org.freedesktop.portal.Desktop',
],
},
deb: { deb: {
packageCategory: 'net', packageCategory: 'net',
desktop: { desktop: {