terminal icon indicating copy to clipboard operation
terminal copied to clipboard

Control key getting "stuck" for enter/tab key?

Open JeffMill opened this issue 1 year ago • 4 comments

Windows Terminal version

1.18.3181.0

Windows build number

10.0.22631.0

Other Software

No response

Steps to reproduce

Winget install ‘KDE.Kdiff3’

Open razzle (not sure if this matters)

Git config --edit --local

[diff]
    tool = kdiff3
    autoRefreshIndex = true
[difftool]
    prompt = false
[difftool "kdiff3"]
    path = C:/Users/jeffmill/AppData/Local/KDiff3/bin/kdiff3.exe
    cmd = \"C:/Users/jeffmill/AppData/Local/KDiff3/bin/kdiff3.exe\" \"$LOCAL\" \"$REMOTE\"

(modify paths accordingly, of course)

git difftool 66f7252e212f6~1..66f7252e212f6

(use a suitable diff that contains multiple changes in it)

Kdiff3 will open and block the console.

Focus on terminal window and press Ctrl-Break

Focus on Kdiff3 window and press Ctrl-Q

Focus on Terminal window and Press Enter a bunch of times – you should see “mmmm”

Expected Behavior

enter key should work as expected.

Actual Behavior

mmmm is shown.

JeffMill avatar Nov 27 '23 19:11 JeffMill

Probably some weird interaction with msys and console modes here, but at least there's a consistent repro 🤷

zadjii-msft avatar Nov 29 '23 22:11 zadjii-msft

Note to self: On the Framework, Fn+b is ctrl+break

zadjii-msft avatar Nov 29 '23 22:11 zadjii-msft

I've been really frustrated with what I think might be this same bug for a very long time and finally figured out what reliably repros this for me. Plus, I figured out a (relatively) minimal way to get back to working state, but it's still really annoying.

My Terminal version: 1.18.10301.0 Windows version: 10.0.22631.3085

My symptom sounds a bit different, but similar to title of this issue, so I suspect it might be the same issue.

Symptom: Modifiers seem stuck in a weird state when using some keys, like backspace, arrow keys, home or end. Tapping all control/alt/shift/windows keys doesn't reset the state.

Only easy reset I've found is to launch a sub-cmd process, then exit that sub-process. Then keys are back to normal.

Repro: Set vscode as your editor in git like so:

[core]
	editor = code --wait

Launch editor through git:

> git config --edit --global

Close config file and return to terminal.

Some keyboard keys are now messed up (Backspace, arrow keys, home, end).

Here's what it types now if I hit up, down, left right, space, ctrl-up, ctrl-down, ctrl-left, ctrl-right, space, home, end:

^[[A^[[B^[[D^[[C ^[[1;5A^[[1;5B^[[1;5D^[[1;5C ^[[H^[[F

Backspace will act as ctrl-backspace deleting whole word instead of one character.

Restore normal keyboard behavior by typing:

> cmd
Microsoft Windows [Version 10.0.22631.3085]
(c) Microsoft Corporation. All rights reserved.

> exit

tex3d avatar Feb 11 '24 01:02 tex3d

@tex3d Your issue is different (I think). That behavior is typically the result of an application setting the ENABLE_VIRTUAL_TERMINAL_INPUT mode (see SetConsoleMode) and then not restoring the initial state when it exits.

j4james avatar Feb 11 '24 12:02 j4james