mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-07-16 13:00:39 -07:00
64 lines
2.2 KiB
Markdown
64 lines
2.2 KiB
Markdown
# Layout Refinement: Approval Mode & Composer Organization
|
|
|
|
## Goal
|
|
|
|
The primary objective is to streamline the main interaction area by moving the
|
|
Approval Mode status to the footer and reorganizing the remaining status
|
|
indicators within the Composer for a better information hierarchy.
|
|
|
|
## Phase 1: The Move (Approval Mode to Footer)
|
|
|
|
The `ApprovalModeIndicator` (manual, auto-accept, plan, YOLO) is removed
|
|
entirely from the Composer component and its "bleed-through" logic. It is
|
|
repositioned as the absolute first item (far left) in the application footer.
|
|
|
|
- **Header:** `mode (Shift+Tab)`
|
|
- **Data:** Streamlined labels (`manual`, `auto-accept`, `plan`, `YOLO`) using
|
|
the existing semantic colors.
|
|
- **Default:** Visible by default for all users.
|
|
|
|
## Phase 2: The Swap (Composer Internal Layout)
|
|
|
|
Once the `ApprovalModeIndicator` is removed, the remaining transient and state
|
|
elements within the Composer are swapped across the horizontal divider.
|
|
|
|
### 1. The "Above Divider" Zone (Transient Environment)
|
|
|
|
This area is for transient notifications that contextualize the current
|
|
environment but are not the active process.
|
|
|
|
- **Toast Messages:** (e.g., "Press Ctrl+C again to exit")
|
|
- **Shell Mode Indicator**
|
|
- **Raw Markdown Indicator**
|
|
- **Shortcuts Hint:** Remains flush right.
|
|
|
|
### 2. The "Below Divider" Zone (Active Processing)
|
|
|
|
This area is reserved exclusively for what the application is _currently doing_.
|
|
It sits directly above the input prompt.
|
|
|
|
- **Loading Indicator:** (e.g., "Thinking...", "Executing Hooks")
|
|
- **Status Display:** (Context usage summary)
|
|
|
|
## Target Layout Mockup
|
|
|
|
```text
|
|
[ConfigInitDisplay]
|
|
[QueuedMessageDisplay]
|
|
[TodoTray]
|
|
|
|
[ToastDisplay | ShellModeIndicator] [ShortcutsHint]
|
|
----------------------------------------------------------------------
|
|
[LoadingIndicator (e.g., Thinking...)]
|
|
[StatusDisplay]
|
|
|
|
[InputPrompt]
|
|
```
|
|
|
|
## Key Principles
|
|
|
|
- **Clean Input:** The main input area should feel less crowded by offloading
|
|
persistent status (Mode) to the footer.
|
|
- **Logical Flow:** Transient "Alerts" (Toasts) go above the line; active "Work"
|
|
(Loading) goes below the line, closest to the prompt.
|