Commit graph

1965 commits

Author SHA1 Message Date
Lawrence Chen
b40f3dec35 Fix split close focus and window background sync 2026-01-22 20:12:54 -08:00
Lawrence Chen
b715f0cebe Update sidebar badges and key modifier translation 2026-01-22 19:30:30 -08:00
Lawrence Chen
5acb4e47b1 Fix notification focus/read handling and add split surface control 2026-01-22 18:58:04 -08:00
Lawrence Chen
bc074d20c1 Implement splits and notification focus 2026-01-22 18:02:45 -08:00
Lawrence Chen
4440e0ae10 Match Ghostty split dimming and divider colors 2026-01-22 18:01:44 -08:00
Lawrence Chen
62136dbdd3 Add notifications and clipboard context menu 2026-01-22 16:53:03 -08:00
Lawrence Chen
f7c421c56a Fix focus when switching tabs 2026-01-22 15:53:35 -08:00
Lawrence Chen
de577c7f03 Match Ghostty mouse tracking and focus handling 2026-01-22 15:24:13 -08:00
Lawrence Chen
846201b3c8 Add Ghostty scrollbars in libghostty view 2026-01-22 03:49:03 -08:00
Lawrence Chen
022f4a0431 Revert "Add Ghostty-style scrollbars and focus handling"
This reverts commit 5d11e612e4.
2026-01-22 03:48:23 -08:00
Lawrence Chen
5d11e612e4 Add Ghostty-style scrollbars and focus handling 2026-01-22 03:47:30 -08:00
Lawrence Chen
fd78696474 agents 2026-01-22 03:18:02 -08:00
Lawrence Chen
cd0f6200c0 Fix Ctrl+C/D handling and add Unix socket control API for testing
Key changes:
- Fix keyboard input handling for control characters in GhosttyTerminalView
  - Set consumed_mods correctly (exclude Ctrl/Cmd from consumed mods)
  - Send unmodified character text for Ctrl+key combinations
  - Add unshifted_codepoint support for proper key encoding

- Add TerminalController with Unix socket API (/tmp/ghosttytabs.sock)
  - Commands: send, send_key, list_tabs, new_tab, close_tab, select_tab
  - Supports ctrl-c, ctrl-d, ctrl-z, enter, tab, escape, etc.

- Add Python test client and automated test suite
  - tests/ghosttytabs.py - Python client library
  - tests/test_ctrl_socket.py - Main Ctrl+C/D test suite (4 tests)
  - tests/test_signals_auto.py - Standalone PTY signal tests

- Update CLAUDE.md with socket API documentation and testing guide
- Update .gitignore for Python cache files

This fixes Ctrl+C/D not working in apps like claude-code, btop, opencode
while continuing to work in simpler apps like htop.
2026-01-22 02:20:51 -08:00
Lawrence Chen
f969298c6e Fix tab switching state persistence and keypress beeps
- Add TerminalSurface class to own ghostty_surface_t lifecycle per tab
- Use ZStack to keep all terminal views alive instead of recreating on switch
- Add NSTextInputClient conformance to properly handle interpretKeyEvents
- Add ghostty_surface_set_focus calls for proper focus management
- Add doCommand(by:) override to silence unhandled key command beeps
2026-01-22 01:47:16 -08:00
Lawrence Chen
c5bd543fe0 Initial commit: macOS terminal app with vertical tabs using libghostty
Features:
- Vertical tabs sidebar with SwiftUI
- Terminal emulation via GhosttyKit.xcframework (libghostty)
- Keyboard shortcuts: Cmd+T/N, Ctrl+Shift+` (new tab), Cmd+W (close),
  Cmd+Shift+[/], Ctrl+Tab (navigation), Cmd+1-9 (jump to tab)
- Reads Ghostty config from ~/Library/Application Support/com.mitchellh.ghostty/config
- Metal-based rendering
2026-01-22 01:16:24 -08:00