feat: Nerd Font support, clipboard paste, and PTY environment fixes

- Add ttyd-nerd-font submodule with embedded JetBrains Mono Nerd Font
  for proper icon rendering in browser via ttyd
- Add Ctrl+Shift+V / Shift+Insert paste support in ttyd frontend
- Strip Zellij env vars from PTY child processes to prevent workspace
  terminal from inheriting Zellij session context
- Launch PTY commands through login shell for proper PATH resolution
- Use /etc/passwd shell lookup instead of $SHELL (Zellij overrides it)
- Soften ANSI 256-color palette to match modern dark themes
- Handle Nerd Font PUA glyphs as width 1 in pyte terminal emulator
- Fix brightmagenta typo in pyte graphics
- Update install script to build ttyd from submodule source
- Add web deployment TODO items for image paste and context menu

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-24 02:44:08 +01:00
co-authored by Claude Opus 4.6
parent b1d0b2a5af
commit 27b19d4698
13 changed files with 167 additions and 48 deletions
+13 -2
View File
@@ -16,9 +16,20 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SUDO_USER="${SUDO_USER:-$(logname)}"
USER_HOME=$(eval echo ~"$SUDO_USER")
echo "[1/6] Installing ttyd..."
curl -L https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64 -o /usr/local/bin/ttyd
echo "[1/6] Building ttyd (with Nerd Font support)..."
TTYD_SRC="$SCRIPT_DIR/ttyd-nerd-font"
if [[ ! -d "$TTYD_SRC/src" ]]; then
echo "Error: ttyd-nerd-font submodule not initialized."
echo "Run: git submodule update --init deploy/ttyd-nerd-font"
exit 1
fi
mkdir -p "$TTYD_SRC/build"
cd "$TTYD_SRC/build"
cmake .. -DCMAKE_BUILD_TYPE=Release >/dev/null 2>&1
make -j"$(nproc)" >/dev/null 2>&1
cp "$TTYD_SRC/build/ttyd" /usr/local/bin/ttyd
chmod +x /usr/local/bin/ttyd
cd "$SCRIPT_DIR"
ttyd --version
echo ""