Description
Describe the bug
I have used vim-slime with kitty successfully with kitty versions 0.26 – 0.31. However, on kitty v0.32 and v0.32.1, I have keyboard problems. (Reinstalling v0.31 fixes the problems.)
vim-slime uses a short piece of vimscript to send text from vim to another kitty window, such as an ipython interpreter.
After the first text is sent with vim-slime, most keyboard shortcuts break, along with most uses of the shift key. For example:
- I cannot type symbols requiring shift in vim, such as
_
; I just get-
. I can, however, type capital letters. - kitty keyboard shortcuts do not work, such as
ctrl-tab
to switch tabs - OS shortcuts do not work while kitty is focused, for example
cmd-q
does not quit kitty. I must use the mouse to quit kitty.
Functionality is restored only after restarting kitty. The vim-slime seems to work as intended, sending text over to the other kitty window as usual.
I am not sure where to start looking for this problem. I posted an issue with vim-slime and was recommended to post here. Any suggestions for tracking down the problem would be appreciated.
I have tried some small manual tests with kitty, to see if I can break it without using vim-slime, but I have not been successful. I tried for example kitty @ --to unix:/tmp/mykitty-1975 send-text --match id:2 --stdin ls
, and no keyboard problems occurred.
To Reproduce
Steps to reproduce the behavior:
- open vim or neovim with the vim-slime plugin
- send something over slime using a command,
<C-c><C-c>
, or a different remapped shortcut - See error
Screenshots
If applicable, add screenshots to help explain your problem.
Environment details
- current vim-slime
- kitty v0.26–0.31, versus kitty v0.32 -v0.32.1
- macOS 14.2.1
- en-US keyboard and languages
- kitty debug output:
kitty 0.32.1 (08d88af2fb) created by Kovid Goyal
Darwin mccec1150.local 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:30:44 PST 2023; root:xnu-10002.81.5~7/RELEASE_ARM64_T6000 arm64
ProductName: macOS ProductVersion: 14.3 BuildVersion: 23D56
Frozen: True
Paths:
kitty: /Applications/kitty.app/Contents/MacOS/kitty
base dir: /Applications/kitty.app/Contents/Resources/kitty
extensions dir: /Applications/kitty.app/Contents/Resources/Python/lib/kitty-extensions
system shell: /bin/zsh
Loaded config files:
test.conf
Config options different from defaults:
allow_remote_control yes
listen_on unix:/tmp/mykitty
Removed shortcuts:
cmd+, → edit_config_file
cmd+enter → new_window
cmd+h → hide_macos_app
cmd+k → clear_terminal to_cursor active
cmd+m → minimize_macos_window
cmd+n → new_os_window
cmd+q → quit
cmd+t → new_tab
cmd+w → close_tab
ctrl+cmd+, → load_config_file
ctrl+cmd+f → toggle_fullscreen
opt+cmd+h → hide_macos_other_apps
opt+cmd+r → clear_terminal reset active
opt+cmd+s → toggle_macos_secure_keyboard_entry
shift+cmd+/ → open_url https://sw.kovidgoyal.net/kitty/
shift+cmd+[ → previous_tab
shift+cmd+] → next_tab
shift+cmd+d → close_window
shift+cmd+w → close_os_window
Important environment variables seen by the kitty process:
PATH /Applications/kitty.app/Contents/MacOS:/Users/redacted/bin/syncscripts:/usr/local/lib/ruby/gems/2.6.0/bin:/usr/local/opt/ruby/bin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/coreutils/libexec/gnubin:/Users/redacted/bin:/opt/homebrew/Caskroom/miniforge/base/envs/npaccel/bin:/opt/homebrew/Caskroom/miniforge/base/condabin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/Library/Apple/usr/bin:/usr/local/MacGPG2/bin:/Library/TeX/texbin:/Users/redacted/.cargo/bin
LANG en_US.UTF-8
EDITOR nvim
SHELL /bin/zsh
DISPLAY /private/tmp/com.apple.launchd.jXcBahEJMY/org.xquartz:0
USER redacted
LC_ALL en_US.UTF-8
LC_TERMINAL_VERSION 3.4.21
LC_CTYPE en_US.UTF-8
LC_TERMINAL iTerm2
Additional context
I am starting kitty with kitty --config test.conf
and this minimal test.conf:
allow_remote_control yes
listen_on unix:/tmp/mykitty
I am starting neovim with neovim -u test.vimrc
and this minimal test.vimrc:
call plug#begin()
Plug 'jpalardy/vim-slime'
call plug#end()
let g:slime_target = "kitty"
let g:slime_default_config = {"listen_on": $KITTY_LISTEN_ON}
Thanks