In patch v9.0.0930 the kitty keyboard protocol was added to libvterm. But the
CSI sequence that disables this protocol is not handled correctly, and this
leaves the terminal window in a broken state. Here are the steps to reproduce:
vim --clean:terminal<CR>$ printf '\x1b[>1u\x1b[<u'<C-r>, <C-d> or <C-e> etc. They won't work because kitty keyboard is not disabled.https://github.com/vim/vim/pull/19837
(2 files)
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
thanks
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
The CI fails for some reason but it works locally.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
well, the new test fails for me, I suppose because I do not run it in a kitty terminal. Is there a way, to detect whether this runs inside a kitty terminal?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
@julio-b pushed 1 commit.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
For the record, the test fails for me in putty:
Found errors in Test_terminal_disable_kitty_keyboard():
command line..script /mnt/home/chrisbra/code/vim-upstream/src/testdir/runtest.vim[636]..function RunTheTest[63]..Test_terminal_disable_kitty_keyboard[5]..WaitForAssert[2]..<SNR>4_WaitForCommon[11]..<lambda>115 line 1: Expected '^[[?1u^[[?0u' but got '\\x1b[>1u\\x1b[?u\\x1b[<u\\x1b[?u'
SKIPPED Test_terminal_eof_arg_win32_ctrl_z(): only works on MS-Windows
Can we do something like this:
+func Test_terminal_disable_kitty_keyboard() + CheckEnv KITTY_WINDOW_ID + let cmd = ['sh', '-c', 'printf ''\x1b[>1u\x1b[?u\x1b[<u\x1b[?u'''] + let buf = term_start(cmd) + let job = term_getjob(buf) + call WaitForAssert({-> assert_equal('dead', job_status(job))}) + call WaitForAssert({-> assert_equal('^[[?1u^[[?0u', term_getline(buf, 1))}) + bwipe! +endfunc
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
well, the new test fails for me, I suppose because I do not run it in a kitty terminal. Is there a way, to detect whether this runs inside a kitty terminal?
The terminal you are running the test shouldn't matter at all. I have tried multiple terminals (xterm, ghostty, st and others) and it works just fine. Printing a literal '\x1b' in a portable way that works for every platform is very difficult. I will mark this as a draft and i will fix it tomorrow.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()