Skip to content

Mouse wheel should scroll the entire chat view, not just the input history when typing #24760

Closed as not planned

Description

@Janosn

Description

When the user is typing in the input box and scrolls the mouse wheel, the current behavior scrolls only through the input history/messages list,
instead of scrolling the entire chat view. When typing in the input field, scrolling the mouse wheel should scroll the entire display area (including AI responses and the whole conversation view).

Plugins

No response

OpenCode version

No response

Steps to reproduce

  1. Have a long conversation with multiple messages
  2. Click on the input box to start typing
  3. Scroll the mouse wheel
  4. Observe that only the history scrolls, not the entire chat view

Screenshot and/or share link

No response

Operating System

No response

Terminal

No response

Activity

  1. kzekiue commented on Apr 28, 2026

    @kzekiue

    @Janosn could you share a bit more detail?

    • opencode version
    • os
    • terminal app, if this is happening in the tui
    • whether this is in opencode terminal ui, opencode web, or desktop
    • a short screen recording (if possible)
    • whether the prompt has multiple lines or is tall enough to scroll inside the input

    i checked the related code path too. afaict, prompt history navigation is keyboard-driven, while the web conversation timeline has its own wheel handling.

    without a reproducible case or env details, i’m not fully sure which scroll container is catching the wheel event here.

  2. removed
    bugSomething isn't working
    on May 3, 2026
  3. tim-mukhin commented on May 4, 2026

    @tim-mukhin

    +1 also want inputbox scrolls with all the chat. Opencode doesn't have a scrollbar. There is literally no indication if chat is scrolled up. I constantly think that I'm at the end of the chat cause I expect inputbox at its end.
    v1.14.33 inside of macos. But based on what I found in the code - there's no specific option to change the scroll behavior
    Image

  4. github-actions commented on Jul 5, 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.

  5. forij commented on Jul 27, 2026

    @forij

    This may be a terminal issue rather than an OpenCode issue.

    Try another terminal, such as Ghostty, to check whether the problem still happens.

    For iTerm2, this configuration fixed it for me:

    Settings → Profiles → [your active profile] → Terminal

    Under Mouse:

    Turn off Terminal may enable alternate mouse scroll
    Turn off Automatically enable alternate mouse scroll
    Keep Enable mouse reporting enabled
    Keep Report mouse wheel events enabled

    Image
  6. NoraioPro commented on Oct 6, 2026

    @NoraioPro

    Workaround: make wheel/up/down scroll the transcript instead of prompt history

    Even though this is closed as not planned, you can reclaim the behavior in your ~/.config/opencode/cli.json (v2):

    {
      "keybinds": {
        "session.line.up": "up,ctrl+alt+y",
        "session.line.down": "down,ctrl+alt+e",
        "prompt.history.previous": "alt+up",
        "prompt.history.next": "alt+down",
        "input.move.up": "none",
        "input.move.down": "none",
        "session.child.first": "none",
        "session.parent": "none",
        "composer.subagent.up": "none",
        "composer.subagent.down": "none",
        "composer.shell.up": "none",
        "composer.shell.down": "none"
      }
    }

    What this does:

    • up/down and wheel-up/wheel-down scroll the session transcript (one line)
    • prompt history moves to alt+up / alt+down
    • session.child.first / session.parent / composer navigation defaults on up/down are disabled — otherwise down opens the Subagents/Shell/Terminals popup and up jumps to the parent session
    • input.move.up/down must be cleared, otherwise cursor movement in the text input shadows the scroll bindings (you lose up/down cursor movement inside multiline drafts in exchange)

    Related: #35295, #39029, #19382, #19283

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