I think I'm on the trail. According to this post on Reddit, some terminal emulators have trouble passing the correct codes to terminal apps like Neovim. I did manage to break C-H completely, but that's not really helpful. By adding the following keybinds to alacritty.yml, I'm getting Neovim to behave differently, but not as expected.
key_bindings:
- { key: F6, mods: Shift, chars: "\x1b[17~;1u" }
- { key: H, mods: Control, chars: "\x1b[72;4u"}
The first one for S-F6, gets Neovim to recognize the 'F6' part, but does not behave any differently than if I just pressed 'F6' without the modifier. But, without this key binding in alacritty.yml, Neovim doesn't react to Shift+F6 at all.
The second entry, if I'm in Insert Mode in Neovim, causes Neovim to switch to Normal Mode and go to the top of the buffer. In normal mode, it just goes to the top of the buffer instead of the defined behavior of moving to the pane to the left of the current pane.
So, I've basically managed to get a "different error", but not solve the problem. Any ideas?
This isn't exactly a fix, but it keeps me from accidentally locking up my terminal and potentially losing work
map('i', '', 'gj', {}) map('i', '', 'gk', {}) map('i', '', '', {}) map('i', '', '', {}) map('n', '', 'j', {}) map('n', '', 'k', {}) map('n', '', 'l', {}) map('n', '', 'h', {})
Now if I forget to leave Insert Mode, the cursor just moves to the left, and C-H in Normal Mode still works as expected.
p.s. I commented the key_bindings in alacritty.yml