Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Kinetic ScrollNew to Visual Studio Code? Get it now.
Kinetic Scroll

Kinetic Scroll

Fabian Lackner

|
1 install
| (0) | Free
Start sustained scrolling with one keypress; opposite direction stops, same direction speeds up.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Kinetic Scroll

kinetic-scroll enables sustained, hands-free viewport scrolling triggered by a single keypress, with dynamic velocity control.

Press a designated key to initiate continuous scrolling. Press it again to increase the scroll velocity. Press the opposite directional key to brake and stop.

Commands

Map these commands in your keybindings.json (no default bindings are enforced):

  • kineticScroll.startKineticScrollDown
  • kineticScroll.startKineticScrollUp
  • kineticScroll.stopKineticScrolling
  • kineticScroll.placeCursorMiddle

Kinematic Behavior

When scrolling is active:

  • Accelerate: Pressing the current direction's keybinding again increases the number of wrapped lines moved on each trigger.
  • Brake/Stop: Pressing the opposite direction's keybinding arrests the movement immediately.
  • Halt: kineticScroll.stopKineticScrolling halts movement regardless of the current vector.
  • Boundary Stop: Scrolling stops automatically when the editor reaches the full top or full bottom.
  • Boundary Direction Lock: After a boundary stop, starting sustained scroll in the opposite direction is blocked for 0.45 seconds.
  • Re-anchor Cursor: kineticScroll.placeCursorMiddle stops kinetic scrolling (if active) and moves the cursor to the middle of the current viewport. Use this when scrolling has moved the viewport away from the cursor.

Configuration Setup

Example keybindings.json mapping:

[
    {
        "key": "PageDown",
        "command": "kineticScroll.startKineticScrollDown",
        "when": "editorTextFocus"
    },
    {
        "key": "PageUp",
        "command": "kineticScroll.startKineticScrollUp",
        "when": "editorTextFocus"
    },
    {
        "key": "Insert",
        "command": "kineticScroll.placeCursorMiddle",
        "when": "editorTextFocus"
    }
]

Settings Parameters

You can fine-tune trigger frequency and displacement behavior in your settings.json:

  • kineticScroll.triggerFrequencyMs (default: 16)
    The delay between scroll triggers in milliseconds. You usually do not need to change this.

  • kineticScroll.initialScrollLinesPerTrigger (default: 2)
    The displacement (Δx) in wrapped lines moved per trigger at initial start.

  • kineticScroll.accelerationStepLines (default: 2)
    The number of lines added to the displacement per trigger upon repeated same-direction triggers.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft