# Workspace Overview Tuim is designed around a single unified workspace that integrates an Explorer, Git changes, an integrated terminal, native settings, and language tools into a coherent interface. Everything is accessible via both keyboard and mouse. --- ## 1. The Layout The Tuim workspace consists of five core regions: ``` ┌─────────────────────────────────────────────────────────────┐ │ < Workspace Explorer [Commands F1] │ 1. Header & Navigation ├────────────────┬────────────────────────────────────────────┤ │ 📁 Explorer │ main.zig │ │ ────────────── │ │ │ > src │ 1 pub fn main() void { │ 2. Sidebar & │ 📄 main.zig │ 2 // Code editing │ 3. Editor Viewport │ 📄 app.zig │ 3 } │ │ │ │ ├────────────────┴────────────────────────────────────────────┤ │ ❯_ Terminal [x] │ 4. Integrated Terminal │ $ zig build test │ ├─────────────────────────────────────────────────────────────┤ │ [NORMAL] main.zig utf-8 │ 5. Footer & Statusline └─────────────────────────────────────────────────────────────┘ ``` ### 1. Header & Breadcrumb Bar * **`< Workspace`**: Clickable breadcrumb navigation that takes you back from specific panels (Explorer, Git, AI, Extensions) to the top-level Workspace list. * **View Title**: Shows the active panel or open tool name. * **`[Commands F1]`**: Clickable button to open the command palette. ### 2. Workspace Sidebar The sidebar hosts your primary project tools. Click an entry or press Enter to open: * **Explorer**: Browse project files and folders in a tree view. * **Git**: View changed files, inspect diffs, stage/unstage, and commit. * **Extensions**: Manage installed plugins, browse the marketplace, and configure specs. * **Language Tools**: Health status, Mason package manager, LSP servers, and formatters. * **AI Assistants**: Launch terminal-based coding assistant CLIs (Antigravity, Claude, Codex, Gemini, OpenCode, Copilot). * **Settings**: Open native application preferences. ### 3. Editor Viewport The primary editing pane, powered by Neovim. Supports: * Vertical and horizontal splits (Ctrl+W v, Ctrl+W s) * Syntax highlighting via Tree-sitter * Autocompletion popups via blink.cmp * In-line diagnostics and LSP hover popups ### 4. Integrated Terminal * A persistent shell session docked below the editor. * Toggle visibility anytime with Ctrl+T without interrupting running commands. * Supports keyboard scrollback navigation with Vim motions and mouse drag selection. ### 5. Status Footer * Displays the active editing mode (`NORMAL`, `IDE`, or `ZEN`). * Shows file path, encoding, and line/column position. * Click the mode badge to switch between editing modes. --- ## 2. Navigating Between Regions Tuim introduces seamless keyboard-driven region switching: | Shortcut | Action | | :--- | :--- | | F6 | Focus the **next** region (Editor → Sidebar → Terminal → Editor). | | Shift+F6 | Focus the **previous** region. | | Ctrl+E | Toggle the **Sidebar** on or off. | | Ctrl+T | Toggle the **Terminal** panel on or off. | | Esc | In a tool panel, returns to the top-level Workspace list; pressed again, returns focus to the Editor. | --- ## 3. Resizing Splits & Panels You can adjust panel widths and heights dynamically using your keyboard: | Shortcut | Action | | :--- | :--- | | Alt+← | Resize panel boundary to the left | | Alt+→ | Resize panel boundary to the right | | Alt+↑ | Resize panel boundary upward | | Alt+↓ | Resize panel boundary downward | > [!NOTE] > You can also click and drag the divider borders between the sidebar, editor, and terminal panel using your mouse. --- ## 4. Responsive & Compact Behavior * **Automatic Sidebar Collapse**: If your terminal window is narrower than **40 columns**, the sidebar automatically collapses to preserve editor readability. All sidebar tools and commands remain 100% accessible via the F1 command palette. * **Side-by-Side vs Focused Views**: In wider terminals (e.g. 100+ columns), dialogs such as Extensions display list and detail panes side by side. In compact terminals, they automatically adapt to a single focused view with smooth back navigation. --- ## Next Steps Learn about Tuim's three distinct editing modes in **[Editing Modes](Editing-Modes.md)**.