Commit Graph

7 Commits

Author SHA1 Message Date
Alejandro Gutiérrez
059004b6f2 fix: space after pane status icons, prevent repeated idle notification sounds
- Add space between status icon and project name in pane list for readability
- Add notifiedIdle set to checkTransitions to prevent re-triggering sound
  after busySessions fluctuations during the same idle period

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 16:46:20 +00:00
Alejandro Gutiérrez
c2e8fcaa94 feat: framed buttons, select mode isolation, shift+click select, pane status icons
- Replace bare ● and × with framed [●] and [×] for better click targets
- Select mode now clears screen and shows only focused pane content
- Shift+click auto-enters select mode for native text selection
- Ctrl+S keyboard shortcut to toggle select mode from any grid view
- Pane list shows status icons: ● green=running, ◉ yellow=idle, ○ dim=unknown
- Update hit-testing regions for new 3-char framed button positions
- Add ctrl+s select hint to all grid header modes and expanded footer

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 16:38:22 +00:00
Alejandro Gutiérrez
1e105cd950 fix: buffer split mouse sequences, widen grid buttons, fix [object Object] in tab bar
- Buffer partial escape sequences in stdin handler so split SGR mouse
  events don't leak garbage characters into PTY panes
- Widen pane button hit areas from 1 char to 2-4 chars each; add title
  row click-to-expand; widen tab close/add buttons and pane list targets
- Fix [object Object] rendering in picker tab bar and pane list caused
  by OpenTUI's t`` tag not handling StyledText interpolation; add st()
  helper that concatenates StyledText by merging chunk arrays

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 15:29:44 +00:00
Alejandro Gutiérrez
c722112a7f feat: weighted grid layout, pane list bar, sorted tabs, and idle sound delay
- Replace 70/30 rearranging split with weighted grid: focused pane's
  column/row get 70%, others shrink in place (no spatial reordering)
- Add clickable pane list row below tab bar in both grid and picker modes
- Sort grid tabs numerically by tab number
- Click on focused pane no longer unfocuses it
- Delay idle notification sound by 10s to filter false intermediate alerts
- Bump chrome top from 3 to 4 rows (tab bar, pane list, header, content)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:52:35 +00:00
Alejandro Gutiérrez
9e424c192a feat: add tabbed grids, click-to-expand, and keybind cleanup
Introduces per-tab pane management with independent focus/expansion state,
a persistent tab bar visible in both picker and grid modes, and a 70/30
soft-expand layout triggered by clicking pane bodies. Removes legacy
toggle keybinds (Ctrl+^ and Ctrl+`) leaving only Ctrl+Space.

New keybinds: Ctrl+T new tab, Alt+1-9 switch tab, Alt+n/p cycle tabs,
Ctrl+E toggle click-expand, Ctrl+W auto-removes empty tabs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 10:45:25 +00:00
Alejandro Gutiérrez
bc8a0c1934 feat: toggle between picker and grid without closing panes
Add pause()/resume() to DirectGridRenderer that detach/reattach frame
listeners without killing captures or PTY sessions. switchToPicker now
pauses the grid, switchToGrid resumes it. Panes keep running in the
background while browsing the project list.

Footer shows "t grid" hint when panes are active in the background.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 09:56:38 +00:00
Alejandro Gutiérrez
3ce6572952 feat: add direct PTY grid with expand/select mode for text copying
Replace tmux-based grid with direct PTY rendering. Add [MAX] button
to expand a pane to fullscreen and [SEL] to enable native text
selection within the expanded pane. Esc exits select/expanded mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 01:41:31 +00:00