Skip to content

[FEATURE]: Option to keep sidebar always fixed (disable responsive mobile menu) in Web UI #33487

Closed as not planned

Description

@eteroad

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

Is your feature request related to a problem? Please describe.

I use OpenCode Web to switch between multiple projects and workspaces. The sidebar is essential for navigation. However, when the browser window width drops below 1280px (the Tailwind xl breakpoint), the fixed sidebar disappears and becomes a floating overlay menu triggered by a hamburger button.

This means every time I want to switch projects, I must:

  1. Click the menu button
  2. Find and click the target project
  3. Close the menu

With the fixed sidebar, it's a single click. This friction makes the Web version unusable for multi-project workflows at narrower window sizes.

I want to switch from Desktop to Web for two reasons:

  1. Easier updates — The Desktop version requires manually downloading the .deb from GitHub and running apt install ./...deb for each update — and the CLI server must be updated separately. The Web (CLI) version can be updated with a single npm command, which is much simpler.

  2. WSL workflow — I run the web command inside WSL, and my Windows browser can access it directly at http://localhost:4096 — no extra setup. The Desktop client requires a separate install on Windows, plus manually configuring the WSL server address and password.

However, there's a blocker: the Desktop version keeps the sidebar always fixed regardless of window width, but the Web version collapses it into a floating menu below 1280px. This makes project switching tedious at narrower widths and prevents me from actually switching.

Describe the solution you'd like.

A setting (in Settings → General, or a localStorage flag) that forces the sidebar to remain fixed at all viewport widths, matching the Desktop behavior. For example:

  • A toggle: "始终固定侧边栏" / "Always keep sidebar fixed"
  • Or a layout config key: "sidebar": { "alwaysFixed": true }

When enabled, the <nav> element should not receive the hidden class below the xl breakpoint, and the main content area should always leave space for the sidebar.

Technical context.

The responsive behavior is controlled by these CSS classes:

Element ≥1280px <1280px
<nav> sidebar xl:block hidden
Sidebar toggle button xl:flex hidden (mobile menu button appears instead)
<main> content xl:left-[var(--main-left)] inset-0

The localStorage key opencode.global.dat:layout currently only tracks mobileSidebar.opened state, with no option to disable the responsive mode.

Additional context.

OpenCode Desktop v1.17.8 keeps the sidebar always fixed at any window width. The Web version already has all the infrastructure (the sidebar element, the toggle, the localStorage layout config) — it just needs an option to skip the responsive collapse. If added, WSL users especially would benefit from the simpler Web-only workflow.

Activity

  1. github-actions commented on Jun 23, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

  2. eteroad commented on Jun 23, 2026

    @eteroad
    Author

    Thanks for the pointer to #23896 — same underlying problem, but I'll keep this open to note the Web/Desktop difference.

    My setup: 2560×1080 (21:9) monitor, half-screen window (~1280px). Desktop keeps the sidebar fixed at this width. Web collapses it into a hamburger menu right at the Tailwind xl breakpoint.

    I understand the Web UI needs to adapt to phones and tablets. Instead of a simple on/off toggle, perhaps the cleanest solution is a configurable breakpoint width — let users set the threshold at which the sidebar collapses. Set it to 0 to disable responsive collapse entirely (always fixed), or to 800 to keep the sidebar fixed on a half-screen laptop, or leave it at the default 1280. This would cover both this issue and #23896 with one setting.

  3. github-actions commented on Aug 23, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions