---
title: Collapse the sidebars (maximize chat area)
---
# Collapse the sidebars (maximize chat area)

## What it is

Two independent toggles let you hide either side panel on the Omniscio dashboard so the chat takes the whole window. The **projects sidebar** is the narrow leftmost column (project rows, color bars). The **sessions sidebar** sits to its right (session rows for the active project, inbox at the top). Either can be collapsed without affecting the other. The **projects sidebar** additionally supports an intermediate **icons-only** state (see "[Collapse the projects sidebar to icons only](#collapse-the-projects-sidebar-to-icons-only)" below) — a narrow rail of just project icons — distinct from hiding it entirely.

### What you see

Each sidebar header carries a small **three-dot overflow menu** (MoreVertical icon) in the upper-right of the header. Opening the menu exposes the **Hide sidebar** action plus a **Search** action — both previously had their own visible icon buttons and were promoted into a menu to declutter the header:

- **Projects sidebar header** — menu trigger labeled "Projects sidebar menu", `data-ui-anchor="sidebar-projects-menu"`. Menu items: "Search projects" (only when at least one project exists) and "Hide projects sidebar (Ctrl+\\)". The standalone **+ Add** button stays visible next to the menu.
- **Sessions sidebar header** — menu trigger labeled "Sessions sidebar menu", `data-ui-anchor="sidebar-sessions-menu"`. Menu items: "Search conversations (Ctrl+K)" (omitted in Gmail / SMS / Telegram / Calendar / Drive / Daily Digest / Channel sub-modes — they don't expose a conversation search) and "Hide sessions sidebar (Ctrl+Shift+\\)". The menu trigger is rendered once after the per-mode header so it appears across every sub-mode (regular project, Gmail, SMS, Telegram, Calendar, Drive, Daily Digest, channels, Inbox).

Selecting an item closes the menu and runs the action immediately. The hide choice persists across launches; search opens the same modal / inline-filter UI as before.

### What persists

Three boolean fields on `AppSettings` (appearance slice):

- `projectsSidebarHidden: boolean` — default `false`.
- `sessionsSidebarHidden: boolean` — default `false`.
- `projectsSidebarIconsOnly: boolean` — default `false` (the icons-only rail; projects sidebar only).

Both are routed through `updateSettingsSchema` (`src/shared/ipc-schemas.ts`) so the renderer write path validates them, and both flow through `useSettingsStore.updateSetting(...)` on every entry point (toolbar button, gutter button, keyboard shortcut, Settings toggle).

## Where to find it

Each sidebar header carries a **three-dot overflow menu** in its upper right; **Hide sidebar** lives in it. Both sidebars are independent, so collapsing one leaves the other alone.

## How it behaves

### How to bring a hidden sidebar back

A thin **8-pixel-wide vertical edge gutter** replaces the hidden sidebar. The gutter is the same height as the dashboard and carries a faint hover background. Hover it and a **PanelLeftOpen / PanelRightOpen** icon fades in — click anywhere on the gutter strip to re-open the sidebar.

- Projects gutter: leftmost column, `data-ui-anchor="sidebar-projects-reopen-gutter"`, labeled "Show projects sidebar".
- Sessions gutter: shown to the right of the projects sidebar (or against the chat-area's left edge if both sidebars are hidden), `data-ui-anchor="sidebar-sessions-reopen-gutter"`, labeled "Show sessions sidebar".

Re-opening restores the previously chosen sidebar width (the resize handle is reattached too).

### Collapse the projects sidebar to icons only

Between "fully shown" and "fully hidden", the **projects sidebar** has a third state: an **icons-only rail** — a fixed ~56 px strip showing just each project's icon, with the full name revealed on hover.

- **Collapse to it** — open the projects sidebar's ⋮ overflow menu ("Projects sidebar menu") and choose **Collapse to icons** (`PanelLeft` icon).
- **Expand back** — click the **expand** button in the collapsed rail's header (`PanelLeftOpen` icon, labeled "Expand projects sidebar", `data-ui-anchor="sidebar-projects-expand"`). Your previous resizable width is restored exactly — the icons-only state overrides the width while collapsed but never overwrites your saved `projectsSidebarWidth`.
- **What you see** — each project's icon, plus a single solid **status dot** in the most-urgent color when it has active sessions (error red → needs-you amber → waiting ember → running green), so nothing needing attention disappears; the full count breakdown stays in the row's hover tooltip. The color bar stays; group headers, the search box, the agent-driven group, and the drag-to-resize handle are hidden while collapsed. Focus Mode still suppresses the dot.
- **Desktop only** — the phone's project list is a full-screen list with no narrow-rail concept, so it's unaffected even though the setting syncs to mobile (mobile's `MobileProjectsList` simply never opts in).

This is independent of **Hide projects sidebar** below: hiding wins (the sidebar isn't rendered at all), and icons-only applies only while the sidebar is shown.

### Keyboard shortcuts

| Shortcut       | Action                                        |
| -------------- | --------------------------------------------- |
| `Ctrl+\`       | Toggle the **projects** sidebar (hide / show) |
| `Ctrl+Shift+\` | Toggle the **sessions** sidebar (hide / show) |

Both shortcuts pass through input fields (you can collapse a sidebar while typing in the composer). Rebind them at Settings → Keyboard Shortcuts — the action ids are `toggleProjectsSidebar` and `toggleSessionsSidebar`.

### Why two toggles instead of one

The requesting user explicitly chose separate buttons over a combined one — they want to fold either panel independently. A common pattern: hide the sessions panel during deep focus on one chat (projects column still visible for quick switching), or hide both when reviewing a long agent response on a small monitor. Combining them into one shortcut would have removed that flexibility.

## For agents

### Settings toggles

Settings → Appearance has two matching switches under "Sidebar Position":

- **Hide Projects Sidebar** — `data-setting-id="hide-projects-sidebar"`. Search keywords include `collapse`, `hide`, `minimize`, `shrink`, `fold`, `panel`, `maximize chat`, `full width`, `distraction free`, `focus`, `compact`.
- **Hide Sessions Sidebar** — `data-setting-id="hide-sessions-sidebar"`. Same synonym set.

The switches are mirrors of the inline collapse buttons + the keyboard shortcuts; flipping them all writes to the same persisted setting.

### Implementation map

For agents editing this feature:

- Conditional rendering in [Dashboard.tsx](../../src/renderer/src/features/dashboard/Dashboard.tsx) — when `projectsSidebarHidden` is true, render `<SidebarEdgeGutter side="left" ... />` in place of `<ProjectsSidebar />` + `<ResizeHandle />`. Same shape for sessions.
- Gutter component: [SidebarEdgeGutter.tsx](../../src/renderer/src/features/dashboard/SidebarEdgeGutter.tsx) (8-px wide, icon hover-revealed).
- Overflow menus live inline in [ProjectsSidebar.tsx](../../src/renderer/src/features/dashboard/ProjectsSidebar.tsx) and [SessionsSidebar.tsx](../../src/renderer/src/features/dashboard/SessionsSidebar.tsx) headers via the shared [SidebarHeaderMenu.tsx](../../src/renderer/src/features/dashboard/SidebarHeaderMenu.tsx) component (`MoreVertical` trigger, React portal menu, `useMenuKeyboard` + `useClickOutside` + `clampToViewport`). The sessions menu is rendered once outside the per-mode conditional so all 9 modes inherit it; the Search item is conditionally added based on whether the current sub-mode supports a conversation search.
- Keyboard shortcut handlers in [useKeyboardShortcuts.ts](../../src/renderer/src/hooks/useKeyboardShortcuts.ts) — switch arms `toggleProjectsSidebar` / `toggleSessionsSidebar`.
- Shortcut registry: [keybindings.ts](../../src/shared/keybindings.ts) — `SHORTCUT_ACTIONS` array (entries near `toggleFocusMode`).
- Settings UI: [AppearanceSettings.tsx](../../src/renderer/src/features/settings/sections/appearance/AppearanceSettings.tsx) — two `ToggleSwitch` rows under the existing "Sidebar Position" group, using `SETTING_TOGGLE_ROW`.
- Settings search index: [settings-search-index.ts](../../src/renderer/src/features/settings/settings-search-index.ts) — two entries with synonym keywords.
- AI-pointable anchors: [ui-anchor-registry.ts](../../src/shared/ui-anchor-registry.ts) — `sidebar-projects-menu`, `sidebar-sessions-menu`, `sidebar-projects-reopen-gutter`, `sidebar-sessions-reopen-gutter`, `sidebar-projects-expand` (the icons-only expand button).
- **Icons-only rail:** [ProjectsSidebar.tsx](../../src/renderer/src/features/dashboard/ProjectsSidebar.tsx) reads `projectsSidebarIconsOnly`, overrides the `<aside>` to a fixed `PROJECTS_SIDEBAR_ICONS_ONLY_WIDTH_PX` (56) + `data-icons-only`, renders a compact header (expand button) + the "Collapse to icons" menu item + a flat icon list. Each [ProjectListItem.tsx](../../src/renderer/src/features/dashboard/ProjectListItem.tsx) takes an explicit `iconsOnly` prop (added to its `projectListItemPropsEqual` memo comparator) — passed ONLY by the desktop sidebar, so mobile is unaffected. The single dot colour comes from `getCountDotColor` in [status-display.ts](../../src/renderer/src/lib/status-display.ts). [DashboardDesktopLayout.tsx](../../src/renderer/src/features/dashboard/DashboardDesktopLayout.tsx) hides the projects `ResizeHandle` while collapsed.

## Related

The other sidebar controls sit in the same headers: the funnel filter and sort-by-usage change what the project list shows, and the sidebar item list decides which entries exist at all.
