2.6 KiB
Layout Refinement: Unified Session State & Composer Organization
Goal
The objective is to consolidate all persistent "Session Modes" into a single, unified status area in the footer and reorganize the remaining transient elements in the Composer for a cleaner information hierarchy.
Phase 1: Unified Footer Modes
The footer's first column is expanded to be the Unified Mode Indicator. It natively incorporates the three primary state toggles of the application.
- Approval Mode: (manual, auto-accept, plan, YOLO) - Always visible.
- Shell Mode: Visible only when active.
- Raw Markdown Mode: Visible only when active.
Footer Layout
- Header:
mode (Shift+Tab) - Data Row: Multiple modes are displayed in their respective semantic
colors, separated by a middle dot (
·). - Example:
plan · shell · raw
Phase 2: Composer Cleanup & Swap
With all modes moved to the footer, the Composer is simplified to handle only transient notifications and active processing states. These two areas are swapped across the horizontal divider.
1. The "Above Divider" Zone (Environment Alerts)
Reserved for transient notifications that alert the user to environment-level changes.
- Toast Messages: (e.g., "Press Ctrl+C again to exit")
- Shortcuts Hint: (e.g., "? for shortcuts") - Remains flush right.
2. The "Below Divider" Zone (Active processing)
Reserved exclusively for the application's current activity. It sits directly above the input prompt for maximum visibility during streaming.
- Loading Indicator: (e.g., "Thinking...", "Executing Hooks")
- Status Display: (Context usage summary)
Target Layout Mockup
Composer Area
[ConfigInitDisplay]
[QueuedMessageDisplay]
[TodoTray]
[ToastDisplay] [ShortcutsHint]
----------------------------------------------------------------------
[LoadingIndicator (e.g., Thinking...)]
[StatusDisplay]
[InputPrompt]
Footer Area (Status Line)
mode (Shift+Tab) workspace /model
manual · shell · raw ~/src/gemini-cli gemini-pro
Key Principles
- Single Source of Truth: All "modes" now live in the footer. If a user wants to know what state the CLI is in, they only need to look at the far-left footer item.
- Reduced Jitter: Moving the Shell and Markdown indicators out of the Composer reduces vertical jumping in the main interaction area.
- Immediate Feedback: The Loading Indicator remains closest to the Input Prompt, providing the most direct feedback during generation.