refine TUI navigation and chrome
ci / web (push) Successful in 30s
ci / rust (push) Successful in 4m41s
ci / flake (push) Successful in 7m13s

This commit is contained in:
Miguel Palhas
2026-08-25 15:10:47 +01:00
parent 2ab07c2343
commit 9ef3547a00
15 changed files with 270 additions and 527 deletions
+2 -4
View File
@@ -136,15 +136,13 @@ cover every v1 action — only override what you want to change:
[tui]
theme = "dark" # dark (default), light, or ansi
leader = "ctrl-a" # one byte that escapes Insert mode
chord_timeout_ms = 1000 # how long to hold a partial chord like `g`
chord_timeout_ms = 1000 # how long to hold a partial chord like `ctrl-w`
[tui.keymap.normal]
"i" = "EnterInsert"
"s" = "OpenSpawnModal"
"s" = "NewDraftPane"
"x" = "KillHighlighted"
"?" = "ShowHelp"
"ctrl-t" = "NewTab"
"g t" = "NextTab"
"ctrl-w h" = "FocusSidebar"
"enter" = "AttachHighlighted"
+6 -8
View File
@@ -7,17 +7,15 @@ written here; if it needs to change, change it here first.
A card is always two lines: **line 1** and **line 2**.
## Line 1 — name + actions
## Line 1 — name
- Left: the session name — `metadata.name` if present, else the command line
(same fallback both clients already use).
- Right: two actions anchored to the top-right corner: **spawn similar**
(`⧉`) and **kill** (`✕`). In the TUI these are keyboard affordances shown on
the highlighted row; in the web they are buttons. The glyphs are shared so
muscle memory transfers.
- Actions reserve their fixed width; the name truncates with `…` before it can
ever reach them. **Overlap between the name and the actions is a defect** —
that overlap is what started this milestone.
- In the web client, **spawn similar** (`⧉`) and **kill** (`✕`) remain buttons
anchored on the right. The TUI omits those glyphs because its actions are
keyboard-driven and the icons do not identify their keys.
- The name truncates with `…` at the available width. In the web client it
must stop before the action buttons; in the TUI it may use the full row.
Line 1 carries no badges. The `⚠ blocked work` badge (#83) and the `exited`
badge move off this row into line 2.