Goal
Reasonable install paths for the main Linux distros so users aren't downloading tarballs from GitHub Releases by hand.
Channels to consider
| Channel |
Audience |
Effort |
Notes |
.deb in a PPA / apt repo |
Debian/Ubuntu |
Medium |
Most-asked-for; can be hosted via Cloudsmith / packagecloud / self-hosted Pages |
AUR (tuicode-bin) |
Arch |
Low |
Community-maintained PKGBUILD pointing at GitHub Release tarball; auto-updateable |
| Flatpak (Flathub) |
Distro-agnostic GUI/TUI |
Medium-High |
Sandboxed; clipboard access via portals; might be awkward for a terminal app |
| Snap |
Ubuntu-default |
Medium |
Strict confinement makes clipboard/file I/O painful; probably skip |
| Nix (nixpkgs) |
Nix users |
Low |
Community-maintainable; just needs a derivation |
| Tarball + install script |
Everyone else |
Low |
Already covered by the release workflow output |
Recommended starting set
- AUR — lowest effort, fastest user reach in the Arch community.
.deb via apt repo — biggest user base; pick a hosting option and document it.
- Tarball + one-liner install script as the fallback for distros not covered above.
Defer Flatpak / Snap / Nix until users ask.
Dependencies
Blocked by: release workflow (produces Linux binaries for x64 and arm64).
Open questions
- Do we want a single
tuicode binary or split into tuicode + a separate launcher script that handles per-terminal config drops (analogue of the iTerm2 dynamic profile)?
- Wayland clipboard handling — TG v2 should handle this via OSC 52 + wl-clipboard fallback, but worth a smoke test per packaging channel.
Goal
Reasonable install paths for the main Linux distros so users aren't downloading tarballs from GitHub Releases by hand.
Channels to consider
.debin a PPA / apt repotuicode-bin)Recommended starting set
.debvia apt repo — biggest user base; pick a hosting option and document it.Defer Flatpak / Snap / Nix until users ask.
Dependencies
Blocked by: release workflow (produces Linux binaries for x64 and arm64).
Open questions
tuicodebinary or split intotuicode+ a separate launcher script that handles per-terminal config drops (analogue of the iTerm2 dynamic profile)?