# Flatpak manifest for copilot-desktop-gtk # Runtime: GNOME platform. Binary is prebuilt Native AOT; the module only # installs files (no in-flatpak compile). GNOME-first: no tray library bundle. app-id: com.github.sirredbeard.copilot-desktop-gtk runtime: org.gnome.Platform runtime-version: '50' sdk: org.gnome.Sdk branch: stable command: copilot-desktop-gtk finish-args: # Display - --socket=wayland - --socket=fallback-x11 - --share=ipc - --device=dri # Audio in/out + PipeWire camera nodes for WebRTC / vision. # No --device=all: camera goes through the Camera portal and PipeWire, # not raw /dev/video* or other host device nodes. - --socket=pulseaudio - --filesystem=xdg-run/pipewire-0 # Network for Copilot + auth - --share=network # Downloads + common XDG dirs for drag-drop / file inputs. # FileChooser portal still covers picks outside these paths. - --filesystem=xdg-download:rw - --filesystem=xdg-documents:ro - --filesystem=xdg-pictures:ro - --filesystem=xdg-videos:ro - --filesystem=xdg-music:ro - --filesystem=xdg-desktop:ro # Host fonts so Microsoft web UI metrics look right. # Do not bind /usr/share/fonts: Flatpak reserves /usr and rejects it # ("Path /usr is reserved"). Runtime fonts + user/XDG fonts cover us. - --filesystem=xdg-data/fonts:ro - --filesystem=xdg-config/fontconfig:ro - --filesystem=~/.fonts:ro - --filesystem=~/.local/share/fonts:ro # Print (CUPS + portal) - --socket=cups - --talk-name=org.freedesktop.portal.Print # User autostart toggle writes here - --filesystem=xdg-config/autostart:create # Notifications + portals (no libsecret: login is WebKit cookies on disk) - --talk-name=org.freedesktop.Notifications - --talk-name=org.freedesktop.portal.Desktop - --talk-name=org.freedesktop.portal.Documents - --talk-name=org.freedesktop.portal.FileChooser - --talk-name=org.freedesktop.portal.OpenURI - --talk-name=org.freedesktop.portal.Settings - --talk-name=org.freedesktop.portal.Background - --talk-name=org.freedesktop.portal.Camera - --own-name=com.github.sirredbeard.copilot-desktop-gtk # Optional SNI watcher probe only (no tray library shipped). # Probe talks to this name directly; no org.freedesktop.DBus talk-name. - --talk-name=org.kde.StatusNotifierWatcher # Persistent WebKit cookies / localStorage / IndexedDB - --persist=.local/share/copilot-desktop-gtk modules: - name: copilot-desktop-gtk buildsystem: simple build-commands: - install -Dm755 copilot-desktop-gtk /app/bin/copilot-desktop-gtk - install -Dm644 copilot-desktop-gtk.desktop /app/share/applications/com.github.sirredbeard.copilot-desktop-gtk.desktop # Daemon desktop stays private (not exported) so GNOME Software only sees one launchable. - install -Dm644 copilot-desktop-gtk-daemon.desktop /app/share/copilot-desktop-gtk/copilot-desktop-gtk-daemon.desktop - install -Dm644 copilot-desktop-gtk-autostart.desktop /app/etc/xdg/autostart/com.github.sirredbeard.copilot-desktop-gtk.desktop - install -Dm644 com.github.sirredbeard.copilot-desktop-gtk.metainfo.xml /app/share/metainfo/com.github.sirredbeard.copilot-desktop-gtk.metainfo.xml # AppStream / Software look for licenses under the app-id path. - install -Dm644 LICENSE /app/share/licenses/com.github.sirredbeard.copilot-desktop-gtk/LICENSE - install -Dm644 NOTICE /app/share/doc/com.github.sirredbeard.copilot-desktop-gtk/NOTICE - install -Dm644 LICENSE /app/share/doc/com.github.sirredbeard.copilot-desktop-gtk/LICENSE - install -Dm644 icons/hicolor/512x512/apps/copilot-desktop-gtk.png /app/share/icons/hicolor/512x512/apps/com.github.sirredbeard.copilot-desktop-gtk.png - install -Dm644 icons/hicolor/256x256/apps/copilot-desktop-gtk.png /app/share/icons/hicolor/256x256/apps/com.github.sirredbeard.copilot-desktop-gtk.png - install -Dm644 icons/hicolor/128x128/apps/copilot-desktop-gtk.png /app/share/icons/hicolor/128x128/apps/com.github.sirredbeard.copilot-desktop-gtk.png - install -Dm644 icons/hicolor/64x64/apps/copilot-desktop-gtk.png /app/share/icons/hicolor/64x64/apps/com.github.sirredbeard.copilot-desktop-gtk.png - install -Dm644 icons/hicolor/48x48/apps/copilot-desktop-gtk.png /app/share/icons/hicolor/48x48/apps/com.github.sirredbeard.copilot-desktop-gtk.png - install -Dm644 icons/hicolor/32x32/apps/copilot-desktop-gtk.png /app/share/icons/hicolor/32x32/apps/com.github.sirredbeard.copilot-desktop-gtk.png - desktop-file-edit --set-key=Icon --set-value=com.github.sirredbeard.copilot-desktop-gtk /app/share/applications/com.github.sirredbeard.copilot-desktop-gtk.desktop - desktop-file-edit --set-key=Exec --set-value='copilot-desktop-gtk %U' /app/share/applications/com.github.sirredbeard.copilot-desktop-gtk.desktop - desktop-file-edit --set-key=Name --set-value='Copilot' /app/share/applications/com.github.sirredbeard.copilot-desktop-gtk.desktop - desktop-file-edit --set-key=Icon --set-value=com.github.sirredbeard.copilot-desktop-gtk /app/share/copilot-desktop-gtk/copilot-desktop-gtk-daemon.desktop - desktop-file-edit --set-key=Exec --set-value='copilot-desktop-gtk --daemon' /app/share/copilot-desktop-gtk/copilot-desktop-gtk-daemon.desktop - desktop-file-edit --set-key=Icon --set-value=com.github.sirredbeard.copilot-desktop-gtk /app/etc/xdg/autostart/com.github.sirredbeard.copilot-desktop-gtk.desktop - desktop-file-edit --set-key=Exec --set-value='copilot-desktop-gtk' /app/etc/xdg/autostart/com.github.sirredbeard.copilot-desktop-gtk.desktop - desktop-file-edit --set-key=Name --set-value='Copilot' /app/etc/xdg/autostart/com.github.sirredbeard.copilot-desktop-gtk.desktop sources: - type: file path: ../../dist/publish/copilot-desktop-gtk - type: file path: ../../assets/desktop/copilot-desktop-gtk.desktop - type: file path: ../../assets/desktop/copilot-desktop-gtk-daemon.desktop - type: file path: ../../assets/desktop/copilot-desktop-gtk-autostart.desktop - type: file path: ../../assets/metainfo/com.github.sirredbeard.copilot-desktop-gtk.metainfo.xml - type: file path: ../../LICENSE - type: file path: ../../NOTICE - type: dir path: ../../dist/icons dest: icons # Out-of-tree WebKitGTK drag-and-drop / file-access patch (issue #2), # bundled Canary-style: private copies of just the WebKit shared libs + # helper processes live under /app, the runtime (org.gnome.Platform//50) # is untouched and unforked. dist/webkit-dnd-overlay/ is populated by # scripts/build-patched-webkit.sh + scripts/stage-webkit-dnd-overlay.sh # before flatpak-builder runs; see packaging/webkit-dnd/README.md. # Libraries install flat to /app/lib (not /app/lib/x86_64-linux-gnu): # /etc/ld.so.conf only auto-scans bare /app/lib for an app's own # commit, so a multiarch-triplet subdir there is invisible to ldconfig # and the app silently keeps resolving the runtime's own WebKitGTK. - name: webkit-dnd-overlay buildsystem: simple build-commands: - mkdir -p /app/lib /app/libexec/webkitgtk-6.0 - cp -a lib/. /app/lib/ - cp -a libexec/webkitgtk-6.0/. /app/libexec/webkitgtk-6.0/ - chmod +x /app/libexec/webkitgtk-6.0/WebKitWebProcess /app/libexec/webkitgtk-6.0/WebKitNetworkProcess /app/libexec/webkitgtk-6.0/WebKitGPUProcess sources: - type: dir path: ../../dist/webkit-dnd-overlay