use-kitty-keyboard-protocol = true doesn't work with tmux
Environment:
- Apple M3
- OS: Sonoma 14.6.1
- Rio: Version 0.1.6 (20230528.115631)
- Tmux: 3.4
I'm using the default config with only use-kitty-keyboard-protocol = true added. It works fine without tmux. However, once I launch tmux, it seems to stop working. E.g. I have a key mapping for ctrl-shift-t set up in Neovim, but it doesn't work when I use it within tmux.
Hey @jZhangTk thanks for the issue! Could you test with latest main?
Thanks for the update, @raphamorim. I followed the instructions here and confirmed that the version is 0.1.10 (20230528.115631), but the behavior is still the same.
Thank you for testing @jZhangTk! Very interesting, I tested Rio and Kitty key inputs and looks is correct at least. Wondering what could be
I assume it does work with kitty right?
I did a bit of searching, and tested tmux with Kitty and Ghostty but looks the protocol doesn't really work there (at least with no configuration), found this as well https://github.com/tmux/tmux/issues/3335
Interesting. It works fine for me on Kitty. What are you using to test the key press? I can test it on my side too.
ah if it does work with kitty terminal then is likely to be a bug in Rio.
I use the kitty cli https://sw.kovidgoyal.net/kitty/invocation/ , there's a command that I can test the inputs kitty +kitten show_key -m kitty
can you send me your tmux configuration as well? I will try to reproduce here
When I was testing it, I commented out everything in tmux.conf, so you don't need any tmux configuration. For Kitty, I also commented out everything except for kitty_mod ctrl+shift+alt so I can use ctrl+shift.
I'm going to test the key press later today and let you know.
I'm not sure if I did it right. I tried to run kitty +kitten show_key -m kitty in tmux for both Rio and Kitty, but it behaves very strangely compared to no tmux. When I press a key, it only responds with Text: and nothing else. One thing I noticed is that when I press c-s-t, Rio displays the same Text:, but Kitty does not show anything, as if no key has been pressed, so they do act a little differently.
I should have provided this earlier. Here are the steps I'm using to test if c-s-t works.
- Add this line to neovim
init.lua
-- reopen a closed tab
vim.keymap.set('n', '<C-S-t>', '<cmd>tabnew#<CR>', { noremap = true, silent = true })
- Open neovim in tmux
- Press
c-s-t - Notice that Rio and Kitty shows different messages (Rio acts as
c-tis pressed)
Rio
Kitty
I have a similar issue with meta key not working in my nvim bindings, similar setup and they also work in Kitty but not in Rio!
@jZhangTk sorry took a while, tried to reproduce it again.
Few notes, ghostty and alacritty doesn't work as create tab either and more important kitty create a new tab having the keybinding or not. If I have a fresh tmux/nvim (no configuration whatsoever) and run C-S-t it will create a new tab anyway.
Thanks for looking into it, @raphamorim. It's definitely not working in Kitty now. Something must have changed on the Kitty side.
I'm actually fine without supporting C-S-t now since I've remapped it to M-t, but one thing to note is that M-t works with the same setup in Kitty, Ghostly, and Alacritty, but not in Rio.
Ok I did some refactors, a lot of stuff was weird tbh. Could you try again? 🙏
Thanks @raphamorim. This is working now 🎉
Let’s gooo Thank you for testing @jZhangTk