feat: add Nix flake package, AppImage and .deb packaging

- flake: build teleportfling and teleportfling-gui as nixpkgs packages
  (buildGoModule) with a .desktop entry and icon for the GUI
- packaging/appimage.sh: bundle the GUI + runtime libs (recursive ldd)
  into a self-contained AppImage via appimagetool
- packaging/deb.sh: build a .deb for Debian/Ubuntu with both binaries,
  desktop entry, icon and declared runtime dependencies
- README: document all three packaging methods
- .gitignore: ignore dist/
This commit is contained in:
2026-09-19 10:31:35 +01:00
parent a8e2a860b4
commit 5f5a2d8650
7 changed files with 305 additions and 36 deletions
+14 -6
View File
@@ -18,10 +18,18 @@ Backlog of deferred / planned work, tracked outside of milestone milestones.
systemd unit (`contrib/teleportfling.service`) that starts the headless
CLI with its own config at `~/.config/teleportfling/daemon.json`.
## Ideas (not yet scoped)
## Future / Ideas (not yet scoped)
- Live settings changes mid-stream (`flinger.SetConfig` for FPS/quality).
- Bitrate/bandwidth tuning beyond the balanced 1080p30 default.
- Screen capture scaling / downsampling.
- Packaging (Nix package / AppImage / release binaries) — deliberately
deferred.
- [ ] **Live settings changes mid-stream** `flinger.SetConfig` for FPS/quality
without a restart.
- [ ] **Bitrate / bandwidth tuning** — options beyond the balanced 1080p30
default.
- [ ] **Screen capture scaling / downsampling** — capture a scaled region rather
than the monitor's native resolution.
- [ ] **Multi-monitor verification** — the GUI monitor picker enumerates via
hyprctl; confirm behaviour on a real multi-monitor setup.
- [ ] **Non-Hyprland monitor enumeration** — portal-based fallback so the picker
works on GNOME/KDE etc. (currently falls back to a single indexed option).
- [ ] **Packaging** — Nix flake package, AppImage, and `.deb` for Debian/Ubuntu
(in progress: flake package, AppImage and .deb scripts added under
packaging/; verify on a real Debian/Ubuntu machine).