[PR #13053] Introduce Mark Mode #29360

Open
opened 2026-01-31 09:34:26 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/13053

State: closed
Merged: Yes


Summary of the Pull Request

Introduces a non-configurable version of mark mode to Windows Terminal. It has the following interactions defined:

  • ctrl+shift+m --> Enter Mark Mode
  • when in Mark Mode...
    • ESC --> Exit Mark Mode
    • arrow keys --> move "start"
    • shift + arrow keys --> anchor "start", move "end"
    • ctrl+a --> select all
  • when a selection is active...

When in mark mode, the cursor does not blink.

References

#4993 - [Epic] Keyboard Selection

PR Checklist

Detailed Description of the Pull Request / Additional comments

  • TermControl:
    • TermControl.cpp just adds logic to prevent the cursor from blinking when in mark mode
  • ControlCore
    • in the same place we handle quick edit, we add an entry point to mark mode
  • TerminalCore
    • this leverages UpdateSelection() and other quick edit functions to make mark mode happen

Validation Steps Performed

  • Make selection, split pane, close pane
    • NOTE: A similar scenario caused a crash at one point. Really weird. Keep an eye on it.
  • Cursor is off when in mark mode
  • general movement/selection
  • general movement/selection that forces the viewport to move
  • In mark mode, selectAll...
    • arrow keys --> move start
    • shift + arrow keys --> move end
  • (regardless of mark mode) if selection active, enter --> copy to clipboard
**Original Pull Request:** https://github.com/microsoft/terminal/pull/13053 **State:** closed **Merged:** Yes --- ## Summary of the Pull Request Introduces a non-configurable version of mark mode to Windows Terminal. It has the following interactions defined: - <kbd>ctrl+shift+m</kbd> --> Enter Mark Mode - when in Mark Mode... - <kbd>ESC</kbd> --> Exit Mark Mode - arrow keys --> move "start" - <kbd>shift</kbd> + arrow keys --> anchor "start", move "end" - <kbd>ctrl+a</kbd> --> select all - when a selection is active... When in mark mode, the cursor does not blink. ## References #4993 - [Epic] Keyboard Selection ## PR Checklist * [X] Closes #715 * [X] Provides a resolution for #11985 ## Detailed Description of the Pull Request / Additional comments - `TermControl`: - `TermControl.cpp` just adds logic to prevent the cursor from blinking when in mark mode - `ControlCore` - in the same place we handle quick edit, we add an entry point to mark mode - `TerminalCore` - this leverages `UpdateSelection()` and other quick edit functions to make mark mode happen ## Validation Steps Performed - [x] Make selection, split pane, close pane - NOTE: A similar scenario caused a crash at one point. Really weird. Keep an eye on it. - [x] Cursor is off when in mark mode - [x] general movement/selection - [x] general movement/selection that forces the viewport to move - [x] In mark mode, selectAll... - [x] arrow keys --> move start - [x] shift + arrow keys --> move end - [x] (regardless of mark mode) if selection active, enter --> copy to clipboard
claunia added the pull-request label 2026-01-31 09:34:26 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#29360