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
+18 -7
View File
@@ -57,12 +57,23 @@ fi
SESSION_NAME="clide-$PROJECT"
# Check if session exists (live or dead)
cd "$WORKDIR"
if zellij list-sessions 2>/dev/null | grep -q "$SESSION_NAME"; then
# Attach to existing session (resurrects dead sessions automatically)
exec zellij attach "$SESSION_NAME"
# Clean up dead/exited zellij sessions for this project
if zellij list-sessions 2>/dev/null | grep -q "$SESSION_NAME.*EXITED"; then
zellij delete-session "$SESSION_NAME" 2>/dev/null || true
fi
# Try to attach to a live session, otherwise create fresh
if zellij list-sessions 2>/dev/null | grep -q "^$SESSION_NAME "; then
# Session exists and is alive -- attach
exec zellij attach "$SESSION_NAME" \
options --no-pane-frames --default-cwd "$WORKDIR"
else
# Create new session
exec zellij --session "$SESSION_NAME" options --default-shell "$CLIDE_BIN" --default-cwd "$WORKDIR"
# No live session -- kill any zombie remnants and start fresh
zellij delete-session "$SESSION_NAME" 2>/dev/null || true
exec zellij --session "$SESSION_NAME" \
options \
--no-pane-frames \
--default-shell "$CLIDE_BIN" \
--default-cwd "$WORKDIR"
fi