mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-09-22 00:02:23 +00:00
tty7: a GPU-rendered, daemon-backed terminal in pure Rust
tty7 is split into two Rust processes: a persistent daemon that owns the shells and a GPU-rendered client that talks to it over a local socket. Because the shells live in the daemon, quitting and reopening the app leaves the session intact — detach and reattach, no tmux required. - Persistent sessions — the daemon holds the PTYs and child processes, so closing a window or swapping in a new build never takes a shell down. - Performance — an 11 MB `cat` completes in 95 ms and DOOM-fire renders at 888 fps; the daemon drains the PTY at device speed off the render path. - Shell-aware — new tabs and splits open in the current working directory; zsh, bash, fish, and PowerShell are set up automatically. - Enhanced prompt — inline completion, syntax highlighting, history, and in-terminal search, with rich flag/subcommand signatures for common tools. - Tabs, resizable splits, a command palette, click-to-open links, desktop notifications, eight themes, and CJK/IME input. Native builds for macOS, Windows, and Linux. Built on Zed's gpui and Alacritty's VT core.
This commit is contained in:
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
# Usage: bundle-linux.sh <target-triple> <arch-label>
|
||||
# Package the release binary into a tarball:
|
||||
# dist/tty7-<version>-linux-<arch>.tar.gz
|
||||
#
|
||||
# Fonts and the app icon are embedded via include_bytes!, so the archive is the
|
||||
# stripped executable plus a sibling completions/ dir (loaded at runtime — see
|
||||
# terminal::signature) and the license/readme. gpui's x11/wayland backends still
|
||||
# dynamic-link the usual system libs at runtime — see the README's Linux
|
||||
# build-dependency list — so this is an unsigned build, not a
|
||||
# portable AppImage.
|
||||
set -euo pipefail
|
||||
|
||||
TARGET="$1"
|
||||
ARCH="$2"
|
||||
VERSION="$(grep -m1 '^version' Cargo.toml | sed -E 's/.*"([^"]+)".*/\1/')"
|
||||
NAME="tty7-${VERSION}-linux-${ARCH}"
|
||||
STAGE="dist/${NAME}"
|
||||
|
||||
rm -rf dist
|
||||
mkdir -p "$STAGE"
|
||||
|
||||
cp "target/${TARGET}/release/tty7" "$STAGE/tty7"
|
||||
chmod +x "$STAGE/tty7"
|
||||
# Release builds keep symbols (thin LTO, no profile strip); drop them here so
|
||||
# the archive isn't ~100 MB of debug info.
|
||||
strip "$STAGE/tty7" || echo "⚠️ strip unavailable — shipping unstripped binary"
|
||||
mkdir -p "$STAGE/completions"
|
||||
cp assets/completions/*.json "$STAGE/completions/"
|
||||
cp LICENSE "$STAGE/LICENSE"
|
||||
cp README.md "$STAGE/README.md"
|
||||
|
||||
tar -C dist -czf "dist/${NAME}.tar.gz" "$NAME"
|
||||
rm -rf "$STAGE"
|
||||
echo "✅ dist/${NAME}.tar.gz"
|
||||
Reference in New Issue
Block a user