Pane Focus Management and Switching #5

Open
opened 2026-05-18 08:27:18 -04:00 by n8k99 · 0 comments
n8k99 commented 2026-05-18 08:27:18 -04:00
Owner

Description

Implement TUI pane layout engine with focus management and keyboard-driven navigation.

Development Tasks (☿ Nova)

  • Create layout/ module with grid-based pane manager
  • Implement focus ring visualization (cyan border on active)
  • Add pane splitting: horizontal Ctrl+\ / vertical Ctrl+-
  • Keyboard nav: Ctrl+hjkl moves between panes
  • Pane closing with intelligent merge logic

Testing Criteria (☿ Nova)

  • Resize test: 4-pane layout survives rapid terminal resize
  • Focus visibility test: active pane clearly distinguished
  • Split ratio test: splits create 50/50, then 33/33/33
  • Close merge test: closing middle pane merges neighbors logically
  • Edge case: cannot split below minimum size (10 cols x 3 rows)

Completion Criteria (🜔 Claudian Review)

  • Pane borders render consistently across all themes
  • Minimum pane size enforced (10x3) - splits refused if too small
  • Focus changes propagate to widget (widget knows if focused)
  • Documented: docs/layout.md describes pane system

Blockers

  • #1 (Calendar Widget) - needs widget to contain in pane
  • #3 (Command Dispatcher) - pane operations via commands

Assignees: @Nova
Labels: layout, pane, focus

## Description Implement TUI pane layout engine with focus management and keyboard-driven navigation. ## Development Tasks (☿ Nova) - [ ] Create `layout/` module with grid-based pane manager - [ ] Implement focus ring visualization (cyan border on active) - [ ] Add pane splitting: horizontal `Ctrl+\` / vertical `Ctrl+-` - [ ] Keyboard nav: `Ctrl+hjkl` moves between panes - [ ] Pane closing with intelligent merge logic ## Testing Criteria (☿ Nova) - [ ] Resize test: 4-pane layout survives rapid terminal resize - [ ] Focus visibility test: active pane clearly distinguished - [ ] Split ratio test: splits create 50/50, then 33/33/33 - [ ] Close merge test: closing middle pane merges neighbors logically - [ ] Edge case: cannot split below minimum size (10 cols x 3 rows) ## Completion Criteria (🜔 Claudian Review) - [ ] Pane borders render consistently across all themes - [ ] Minimum pane size enforced (10x3) - splits refused if too small - [ ] Focus changes propagate to widget (widget knows if focused) - [ ] Documented: `docs/layout.md` describes pane system ## Blockers - [ ] #1 (Calendar Widget) - needs widget to contain in pane - [ ] #3 (Command Dispatcher) - pane operations via commands Assignees: @Nova Labels: layout, pane, focus
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
n8k99/bastion#5
No description provided.