Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

<S-CR> not recognized correctly #992

Closed
realSaltyFish opened this issue Oct 2, 2021 · 5 comments · Fixed by #1598
Closed

<S-CR> not recognized correctly #992

realSaltyFish opened this issue Oct 2, 2021 · 5 comments · Fixed by #1598
Assignees
Labels
bug Something isn't working keyboard Input Catch all category for keyboard issues

Comments

@realSaltyFish
Copy link

Describe the bug
Neovide cannot recognize <S-CR>.

To Reproduce
Steps to reproduce the behavior:

  1. Enter insert mode
  2. Press Ctrl+V, then Shift+Return
  3. ^M appears

Expected behavior
<S-CR> should appear instead of ^M

Desktop (please complete the following information):

  • OS: Arch Linux
  • Neovide Version: 0.8.0
  • Neovim Version: 0.5.1

Please run neovide --log and paste the contents of the .log file here:
(irrelevant output cut out)

TRACE [neovide::channel_utils] ui_command Keyboard("a")
TRACE [neovide::bridge::ui_commands] Keyboard Input Sent: a
TRACE [neovide::bridge::handler] Neovim notification: "redraw"
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 52, column_start: 84, cells: [GridLineCell { text: "a", highlight_id: Some(1), repeat: None }] }
TRACE [neovide::channel_utils] redraw_event Flush
TRACE [neovide::editor] Image flushed
TRACE [neovide::channel_utils] batched_draw_command [Window { grid_id: 1, command: DrawLine([LineFragment { text: "                                                                                    a          ", window_left: 0, window_top: 52, width: 95, style: Some(Style { colors: Colors { foreground: None, background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, UpdateCursor(Cursor { grid_position: (6, 1), parent_window_id: 1, shape: Block, cell_percentage: Some(0.0), blinkwait: Some(0), blinkon: Some(0), blinkoff: Some(0), style: None, enabled: true, double_width: false, character: " " })]
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::bridge::handler] Neovim notification: "redraw"
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 52, column_start: 84, cells: [GridLineCell { text: " ", highlight_id: Some(1), repeat: None }] }
TRACE [neovide::channel_utils] redraw_event ModeChange { mode: Insert, mode_index: 2 }
TRACE [neovide::channel_utils] redraw_event Flush
TRACE [neovide::editor] Image flushed
TRACE [neovide::channel_utils] batched_draw_command [Window { grid_id: 1, command: DrawLine([LineFragment { text: "                                                                                               ", window_left: 0, window_top: 52, width: 95, style: Some(Style { colors: Colors { foreground: None, background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, ModeChanged(Insert), UpdateCursor(Cursor { grid_position: (6, 1), parent_window_id: 1, shape: Vertical, cell_percentage: Some(0.25), blinkwait: Some(0), blinkon: Some(0), blinkoff: Some(0), style: None, enabled: true, double_width: false, character: " " })]
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text:                                                                                     a          
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::bridge::handler] Neovim notification: "redraw"
TRACE [neovide::channel_utils] redraw_event HighlightAttributesDefine { id: 248, style: Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 } }
TRACE [neovide::channel_utils] redraw_event HighlightAttributesDefine { id: 249, style: Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: true, strikethrough: false, underline: false, undercurl: false, blend: 0 } }
TRACE [neovide::channel_utils] redraw_event HighlightAttributesDefine { id: 250, style: Style { colors: Colors { foreground: Some(Color4f { r: 1.0, g: 0.0, b: 0.0, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 } }
TRACE [neovide::channel_utils] redraw_event HighlightAttributesDefine { id: 251, style: Style { colors: Colors { foreground: Some(Color4f { r: 1.0, g: 0.72156864, b: 0.42352942, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 } }
TRACE [neovide::channel_utils] redraw_event HighlightAttributesDefine { id: 252, style: Style { colors: Colors { foreground: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), background: Some(Color4f { r: 0.38431373, g: 0.44705883, b: 0.6431373, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 } }
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 51, column_start: 0, cells: [GridLineCell { text: " ", highlight_id: Some(248), repeat: None }, GridLineCell { text: "I", highlight_id: Some(249), repeat: None }, GridLineCell { text: "N", highlight_id: None, repeat: None }, GridLineCell { text: "S", highlight_id: None, repeat: None }, GridLineCell { text: "E", highlight_id: None, repeat: None }, GridLineCell { text: "R", highlight_id: None, repeat: None }, GridLineCell { text: "T", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: Some(248), repeat: None }, GridLineCell { text: " ", highlight_id: Some(210), repeat: None }, GridLineCell { text: "[", highlight_id: None, repeat: None }, GridLineCell { text: "N", highlight_id: None, repeat: None }, GridLineCell { text: "o", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: None, repeat: None }, GridLineCell { text: "N", highlight_id: None, repeat: None }, GridLineCell { text: "a", highlight_id: None, repeat: None }, GridLineCell { text: "m", highlight_id: None, repeat: None }, GridLineCell { text: "e", highlight_id: None, repeat: None }, GridLineCell { text: "]", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: Some(210), repeat: Some(51) }, GridLineCell { text: "\u{e612}", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: Some(210), repeat: Some(2) }, GridLineCell { text: " ", highlight_id: Some(227), repeat: Some(3) }, GridLineCell { text: "\u{e712}", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: Some(227), repeat: Some(2) }, GridLineCell { text: " ", highlight_id: Some(248), repeat: None }, GridLineCell { text: "1", highlight_id: None, repeat: None }, GridLineCell { text: "0", highlight_id: Some(248), repeat: Some(2) }, GridLineCell { text: "%", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: Some(249), repeat: None }, GridLineCell { text: "㏑", highlight_id: None, repeat: None }, GridLineCell { text: "", highlight_id: None, repeat: None }, GridLineCell { text: ":", highlight_id: None, repeat: None }, GridLineCell { text: "0", highlight_id: None, repeat: None }, GridLineCell { text: "/", highlight_id: None, repeat: None }, GridLineCell { text: "1", highlight_id: None, repeat: None }, GridLineCell { text: "☰", highlight_id: None, repeat: None }, GridLineCell { text: "℅", highlight_id: None, repeat: None }, GridLineCell { text: ":", highlight_id: None, repeat: None }, GridLineCell { text: "1", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: Some(248), repeat: None }] }
TRACE [neovide::channel_utils] redraw_event Flush
TRACE [neovide::editor] Image flushed
TRACE [neovide::channel_utils] batched_draw_command [Window { grid_id: 1, command: DrawLine([LineFragment { text: " ", window_left: 0, window_top: 51, width: 1, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "INSERT", window_left: 1, window_top: 51, width: 6, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: true, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " ", window_left: 7, window_top: 51, width: 1, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " [No Name]                                                   \u{e612}  ", window_left: 8, window_top: 51, width: 64, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.972549, g: 0.972549, b: 0.9490196, a: 1.0 }), background: Some(Color4f { r: 0.26666668, g: 0.2784314, b: 0.3529412, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "   \u{e712}  ", window_left: 72, window_top: 51, width: 6, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.972549, g: 0.972549, b: 0.9490196, a: 1.0 }), background: Some(Color4f { r: 0.38431373, g: 0.44705883, b: 0.6431373, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " 100%", window_left: 78, window_top: 51, width: 5, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " ㏑", window_left: 83, window_top: 51, width: 3, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: true, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: ":0/1☰℅:1", window_left: 86, window_top: 51, width: 8, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: true, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " ", window_left: 94, window_top: 51, width: 1, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, UpdateCursor(Cursor { grid_position: (6, 1), parent_window_id: 1, shape: Vertical, cell_percentage: Some(0.25), blinkwait: Some(0), blinkon: Some(0), blinkoff: Some(0), style: None, enabled: true, double_width: false, character: " " })]
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text: INSERT
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::bridge::handler] Neovim notification: "redraw"
TRACE [neovide::channel_utils] redraw_event WindowViewport { grid: 2, top_line: 0.0, bottom_line: 2.0, current_line: 0.0, current_column: 0.0, line_count: None }
TRACE [neovide::channel_utils] redraw_event Flush
TRACE [neovide::editor] viewport event received before window initialized
TRACE [neovide::editor] Image flushed
TRACE [neovide::channel_utils] batched_draw_command [UpdateCursor(Cursor { grid_position: (6, 1), parent_window_id: 1, shape: Vertical, cell_percentage: Some(0.25), blinkwait: Some(0), blinkon: Some(0), blinkoff: Some(0), style: None, enabled: true, double_width: false, character: " " })]
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::channel_utils] ui_command Keyboard("<C-v>")
TRACE [neovide::bridge::ui_commands] Keyboard Input Sent: <C-v>
TRACE [neovide::bridge::handler] Neovim notification: "redraw"
TRACE [neovide::bridge::handler] Neovim notification: "redraw"
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 1, column_start: 6, cells: [GridLineCell { text: "^", highlight_id: Some(82), repeat: None }] }
TRACE [neovide::channel_utils] redraw_event CursorGoto { grid: 1, row: 1, column: 7 }
TRACE [neovide::channel_utils] redraw_event Flush
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 52, column_start: 84, cells: [GridLineCell { text: "^", highlight_id: Some(1), repeat: None }, GridLineCell { text: "V", highlight_id: None, repeat: None }] }
TRACE [neovide::channel_utils] redraw_event CursorGoto { grid: 1, row: 1, column: 6 }
TRACE [neovide::channel_utils] redraw_event Flush
TRACE [neovide::editor] Image flushed
TRACE [neovide::channel_utils] batched_draw_command [Window { grid_id: 1, command: DrawLine([LineFragment { text: "  ", window_left: 0, window_top: 1, width: 2, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.38431373, g: 0.44705883, b: 0.6431373, a: 1.0 }), background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "1   ", window_left: 2, window_top: 1, width: 4, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.94509804, g: 0.98039216, b: 0.54901963, a: 1.0 }), background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "^", window_left: 6, window_top: 1, width: 1, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 1.0, g: 0.33333334, b: 0.33333334, a: 1.0 }), background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "                                                                                        ", window_left: 7, window_top: 1, width: 88, style: Some(Style { colors: Colors { foreground: None, background: Some(Color4f { r: 0.25882354, g: 0.26666668, b: 0.3137255, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, UpdateCursor(Cursor { grid_position: (7, 1), parent_window_id: 1, shape: Vertical, cell_percentage: Some(0.25), blinkwait: Some(0), blinkon: Some(0), blinkoff: Some(0), style: None, enabled: true, double_width: false, character: " " })]
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::editor] Image flushed
TRACE [neovide::channel_utils] batched_draw_command [Window { grid_id: 1, command: DrawLine([LineFragment { text: "                                                                                    ^V         ", window_left: 0, window_top: 52, width: 95, style: Some(Style { colors: Colors { foreground: None, background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, UpdateCursor(Cursor { grid_position: (6, 1), parent_window_id: 1, shape: Vertical, cell_percentage: Some(0.25), blinkwait: Some(0), blinkon: Some(0), blinkoff: Some(0), style: None, enabled: true, double_width: false, character: "^" })]
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text: ^
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text:                                                                                         
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text:                                                                                     ^V         
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::channel_utils] ui_command Keyboard("\r")
TRACE [neovide::bridge::ui_commands] Keyboard Input Sent: 
TRACE [neovide::bridge::handler] Neovim notification: "redraw"
TRACE [neovide::bridge::handler] Neovim notification: "redraw"
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 52, column_start: 86, cells: [GridLineCell { text: "^", highlight_id: Some(1), repeat: None }, GridLineCell { text: "M", highlight_id: None, repeat: None }] }
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 1, column_start: 6, cells: [GridLineCell { text: " ", highlight_id: Some(56), repeat: None }] }
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 52, column_start: 84, cells: [GridLineCell { text: " ", highlight_id: Some(1), repeat: Some(4) }] }
TRACE [neovide::channel_utils] redraw_event CursorGoto { grid: 1, row: 1, column: 7 }
TRACE [neovide::channel_utils] redraw_event WindowViewport { grid: 2, top_line: 0.0, bottom_line: 2.0, current_line: 0.0, current_column: 1.0, line_count: None }
TRACE [neovide::editor] viewport event received before window initialized
TRACE [neovide::channel_utils] redraw_event Flush
TRACE [neovide::editor] Image flushed
TRACE [neovide::channel_utils] redraw_event Flush
TRACE [neovide::channel_utils] batched_draw_command [Window { grid_id: 1, command: DrawLine([LineFragment { text: "                                                                                    ^V^M       ", window_left: 0, window_top: 52, width: 95, style: Some(Style { colors: Colors { foreground: None, background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, Window { grid_id: 1, command: DrawLine([LineFragment { text: "  ", window_left: 0, window_top: 1, width: 2, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.38431373, g: 0.44705883, b: 0.6431373, a: 1.0 }), background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "1   ", window_left: 2, window_top: 1, width: 4, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.94509804, g: 0.98039216, b: 0.54901963, a: 1.0 }), background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "                                                                                         ", window_left: 6, window_top: 1, width: 89, style: Some(Style { colors: Colors { foreground: None, background: Some(Color4f { r: 0.25882354, g: 0.26666668, b: 0.3137255, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, Window { grid_id: 1, command: DrawLine([LineFragment { text: "                                                                                               ", window_left: 0, window_top: 52, width: 95, style: Some(Style { colors: Colors { foreground: None, background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, UpdateCursor(Cursor { grid_position: (7, 1), parent_window_id: 1, shape: Vertical, cell_percentage: Some(0.25), blinkwait: Some(0), blinkon: Some(0), blinkoff: Some(0), style: None, enabled: true, double_width: false, character: " " })]
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::editor] Image flushed
TRACE [neovide::channel_utils] batched_draw_command [UpdateCursor(Cursor { grid_position: (7, 1), parent_window_id: 1, shape: Vertical, cell_percentage: Some(0.25), blinkwait: Some(0), blinkon: Some(0), blinkoff: Some(0), style: None, enabled: true, double_width: false, character: " " })]
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text:                                                                                     ^V^M       
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::bridge::handler] Neovim notification: "redraw"
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 0, column_start: 0, cells: [GridLineCell { text: " ", highlight_id: Some(234), repeat: None }, GridLineCell { text: "¹", highlight_id: None, repeat: None }, GridLineCell { text: "[", highlight_id: None, repeat: None }, GridLineCell { text: "N", highlight_id: None, repeat: None }, GridLineCell { text: "o", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: None, repeat: None }, GridLineCell { text: "N", highlight_id: None, repeat: None }, GridLineCell { text: "a", highlight_id: None, repeat: None }, GridLineCell { text: "m", highlight_id: None, repeat: None }, GridLineCell { text: "e", highlight_id: None, repeat: None }, GridLineCell { text: "]", highlight_id: None, repeat: None }, GridLineCell { text: "+", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: None, repeat: None }, GridLineCell { text: "\u{e612}", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: None, repeat: None }] }
TRACE [neovide::channel_utils] redraw_event HighlightAttributesDefine { id: 253, style: Style { colors: Colors { foreground: Some(Color4f { r: 1.0, g: 0.33333334, b: 0.33333334, a: 1.0 }), background: Some(Color4f { r: 0.25882354, g: 0.26666668, b: 0.3137255, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 } }
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 1, column_start: 6, cells: [GridLineCell { text: "^", highlight_id: Some(253), repeat: None }, GridLineCell { text: "M", highlight_id: None, repeat: None }] }
TRACE [neovide::channel_utils] redraw_event HighlightAttributesDefine { id: 254, style: Style { colors: Colors { foreground: Some(Color4f { r: 0.12941177, g: 0.13333334, b: 0.17254902, a: 1.0 }), background: Some(Color4f { r: 0.12941177, g: 0.13333334, b: 0.17254902, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 } }
TRACE [neovide::channel_utils] redraw_event GridLine { grid: 1, row: 51, column_start: 8, cells: [GridLineCell { text: " ", highlight_id: Some(213), repeat: None }, GridLineCell { text: "[", highlight_id: None, repeat: None }, GridLineCell { text: "N", highlight_id: None, repeat: None }, GridLineCell { text: "o", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: None, repeat: None }, GridLineCell { text: "N", highlight_id: None, repeat: None }, GridLineCell { text: "a", highlight_id: None, repeat: None }, GridLineCell { text: "m", highlight_id: None, repeat: None }, GridLineCell { text: "e", highlight_id: None, repeat: None }, GridLineCell { text: "]", highlight_id: None, repeat: None }, GridLineCell { text: "[", highlight_id: None, repeat: None }, GridLineCell { text: "+", highlight_id: None, repeat: None }, GridLineCell { text: "]", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: Some(213), repeat: Some(48) }, GridLineCell { text: "\u{e612}", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: Some(213), repeat: Some(2) }, GridLineCell { text: " ", highlight_id: Some(227), repeat: Some(3) }, GridLineCell { text: "\u{e712}", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: Some(227), repeat: Some(2) }, GridLineCell { text: " ", highlight_id: Some(248), repeat: None }, GridLineCell { text: "1", highlight_id: None, repeat: None }, GridLineCell { text: "0", highlight_id: Some(248), repeat: Some(2) }, GridLineCell { text: "%", highlight_id: None, repeat: None }, GridLineCell { text: " ", highlight_id: Some(249), repeat: None }, GridLineCell { text: "㏑", highlight_id: None, repeat: None }, GridLineCell { text: "", highlight_id: None, repeat: None }, GridLineCell { text: ":", highlight_id: None, repeat: None }, GridLineCell { text: "1", highlight_id: None, repeat: None }, GridLineCell { text: "/", highlight_id: None, repeat: None }, GridLineCell { text: "1", highlight_id: None, repeat: None }, GridLineCell { text: "☰", highlight_id: None, repeat: None }, GridLineCell { text: "℅", highlight_id: None, repeat: None }, GridLineCell { text: ":", highlight_id: None, repeat: None }, GridLineCell { text: "3", highlight_id: None, repeat: None }] }
TRACE [neovide::channel_utils] redraw_event WindowViewport { grid: 2, top_line: 0.0, bottom_line: 2.0, current_line: 0.0, current_column: 1.0, line_count: None }
TRACE [neovide::channel_utils] redraw_event CursorGoto { grid: 1, row: 1, column: 8 }
TRACE [neovide::channel_utils] redraw_event Flush
TRACE [neovide::editor] viewport event received before window initialized
TRACE [neovide::editor] Image flushed
TRACE [neovide::channel_utils] batched_draw_command [Window { grid_id: 1, command: DrawLine([LineFragment { text: " ¹[No Name]+ \u{e612} ", window_left: 0, window_top: 0, width: 15, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), background: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "                                                                             ", window_left: 15, window_top: 0, width: 77, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.20392157, g: 0.21568628, b: 0.27450982, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " B ", window_left: 92, window_top: 0, width: 3, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.972549, g: 0.972549, b: 0.9490196, a: 1.0 }), background: Some(Color4f { r: 0.38431373, g: 0.44705883, b: 0.6431373, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, Window { grid_id: 1, command: DrawLine([LineFragment { text: "  ", window_left: 0, window_top: 1, width: 2, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.38431373, g: 0.44705883, b: 0.6431373, a: 1.0 }), background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "1   ", window_left: 2, window_top: 1, width: 4, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.94509804, g: 0.98039216, b: 0.54901963, a: 1.0 }), background: None, special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "^M", window_left: 6, window_top: 1, width: 2, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 1.0, g: 0.33333334, b: 0.33333334, a: 1.0 }), background: Some(Color4f { r: 0.25882354, g: 0.26666668, b: 0.3137255, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "                                                                                       ", window_left: 8, window_top: 1, width: 87, style: Some(Style { colors: Colors { foreground: None, background: Some(Color4f { r: 0.25882354, g: 0.26666668, b: 0.3137255, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, Window { grid_id: 1, command: DrawLine([LineFragment { text: " ", window_left: 0, window_top: 51, width: 1, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "INSERT", window_left: 1, window_top: 51, width: 6, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: true, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " ", window_left: 7, window_top: 51, width: 1, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " [No Name][+]                                                \u{e612}  ", window_left: 8, window_top: 51, width: 64, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.972549, g: 0.972549, b: 0.9490196, a: 1.0 }), background: Some(Color4f { r: 0.12941177, g: 0.13333334, b: 0.17254902, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: "   \u{e712}  ", window_left: 72, window_top: 51, width: 6, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.972549, g: 0.972549, b: 0.9490196, a: 1.0 }), background: Some(Color4f { r: 0.38431373, g: 0.44705883, b: 0.6431373, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " 100%", window_left: 78, window_top: 51, width: 5, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " ㏑", window_left: 83, window_top: 51, width: 3, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: true, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: ":1/1☰℅:3", window_left: 86, window_top: 51, width: 8, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: true, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }, LineFragment { text: " ", window_left: 94, window_top: 51, width: 1, style: Some(Style { colors: Colors { foreground: Some(Color4f { r: 0.15686275, g: 0.16470589, b: 0.21176471, a: 1.0 }), background: Some(Color4f { r: 0.3137255, g: 0.98039216, b: 0.48235294, a: 1.0 }), special: None }, reverse: false, italic: false, bold: false, strikethrough: false, underline: false, undercurl: false, blend: 0 }) }]) }, UpdateCursor(Cursor { grid_position: (8, 1), parent_window_id: 1, shape: Vertical, cell_percentage: Some(0.25), blinkwait: Some(0), blinkon: Some(0), blinkoff: Some(0), style: None, enabled: true, double_width: false, character: " " })]
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text:  ¹[No Name]+  
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text: ^M
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text:                                                                                        
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text:  [No Name][+]                                                  
TRACE [neovide::renderer::fonts::caching_shaper] Shaping text: :1/1☰℅:3
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
TRACE [neovide::redraw_scheduler] Next frame queued
@realSaltyFish realSaltyFish added the bug Something isn't working label Oct 2, 2021
@dineshKumar777 dineshKumar777 added the keyboard Input Catch all category for keyboard issues label Dec 10, 2021
@last-partizan last-partizan self-assigned this Jan 23, 2022
@last-partizan
Copy link
Collaborator

@realSaltyFish could you please try it in raw neovim?

In my case i was able to reproduce it in neovim and even in vim, so it's not related to neovide.

The only one which inserts <C-R> is gnvim.

@fredizzimo
Copy link
Member

Neovim cannot distinguish between shifted and non-shifted ctrl keys. For more information see this neovim/neovim#2886 (comment). But even if that's the case, I do think that Neovide could handle it better and send the same unshifted keycode in both cases.

@realSaltyFish
Copy link
Author

realSaltyFish commented Feb 12, 2022

This actually depends on the terminal emulator. Most terminal emulators need special keybinding configuration (send^[[13;2u for <S-CR> and ^[[13;5u for <C-CR>). I have done this in alacritty, kitty, xterm and iTerm2, and they all work perfectly. Furthermore, VimR (a neovim GUI for macOS) supports this out of the box.

With that being said, I believe neovim actually can distinguish <S-CR> from <CR> (and perhaps many other shifted/unshifted ctrl keys). We just need some work to figure out the corresponding terminal control sequences. As neovide is the "terminal emulator" that neovim runs in, it should be responsible for resolving these keybindings.

@papricasix
Copy link

This issue has been fixed in NeoVim recently: neovim/neovim#17771

Here some excerpt from the NeoVim documentation:

At startup Nvim will query your terminal to see if it supports the CSI u
encoding by writing the sequence  

	CSI ? u CSI c

If your terminal emulator responds with  

	CSI ? <flags> u

this means your terminal supports the CSI u encoding and Nvim will tell your
terminal to enable it by writing the sequence  

	CSI > 1 u

If your terminal does not support CSI u then Nvim will instead enable the
"modifyOtherKeys" encoding by writing the sequence  

	CSI > 4 ; 2 m

When Nvim exits cleanly it will send the corresponding sequence to disable the
special key encoding. If Nvim does not exit cleanly then your terminal
emulator could be in a bad state. If this happens, simply run "reset".

@PhotonQuantum
Copy link
Contributor

PhotonQuantum commented Oct 14, 2022

I thought this could be fixed by #1483, but https://github.com/neovide/neovide#e484c906 still doesn't work for me.

My neovim version is 0.8.0.

UPDATE

It seems that <CR> is not handled correctly. I've opened a new PR on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working keyboard Input Catch all category for keyboard issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants