Skip to content

Cursor shape (DECSCUSR) not forwarded from pane terminals to host #116

Closed

Description

@udsamani

Current behavior

Terminal apps like neovim that change cursor shape via DECSCUSR (e.g. beam in insert mode, block in normal mode) have no effect inside herdr panes — the cursor stays fixed as whatever shape
the host terminal had before launching herdr.

Proposed change

Forward cursor shape through the rendering pipeline — read it from ghostty's render state, propagate through the server/client protocol, and emit DECSCUSR on the client side when it changes.

This does not change UI, interaction, or workflow — it's a missing terminal passthrough.

Activity

  1. udsamani commented on May 15, 2026

    @udsamani
    Author

    #117

    Created this but got rejected ! Let me know if it makes sense. Its a good issue IMO.

  2. ogulcancelik commented on May 15, 2026

    @ogulcancelik
    Collaborator

    fixed with some more changes, ty

  3. udsamani commented on May 15, 2026

    @udsamani
    Author

    Thank you :)

  4. added a commit that references this issue on May 15, 2026
    73dba97
  5. danscheer commented on Jun 18, 2026

    @danscheer

    Still reproducible in v0.7.0

    The DECSCUSR forwarding issue persists in the latest stable release.

    Environment:

    • herdr v0.7.0
    • Ghostty (xterm-ghostty, truecolor)
    • macOS

    Reproduction:

    Run this inside any herdr pane:

    printf '\e[6 q'; sleep 4

    Expected: Ghostty's cursor changes to a bar/beam for 4 seconds.
    Actual: Cursor stays as a blinking block — the sequence never reaches the host terminal.

    As a result, NeoVim's mode-dependent cursor shape (block in Normal, beam in Insert) does not work inside herdr panes. The Ss/Se terminfo entries are correct ($TERM=xterm-ghostty is set inside panes), so NeoVim sends the right sequences — herdr just doesn't forward them.

  6. added a commit that references this issue on Oct 2, 2026
    a21507c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    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