zellij-org / zellij

A terminal workspace with batteries included
https://zellij.dev
MIT License
21.84k stars 662 forks source link

`Alt+[]` also triggered by `Ctrl+PageUp/PageDown` #2441

Open jovandeginste opened 1 year ago

jovandeginste commented 1 year ago

Basic information

zellij --version: 0.36.0 stty size: 53 117 uname -av or ver(Windows): 5.15.0-71-generic #78-Ubuntu (and other)

List of programs you interact with as, PROGRAM --version: output cropped meaningful, for example: Tilix version: 1.9.5 (but other terminal emulators show the same behaviour)

Further information

  1. start a fresh instance
  2. create multiple panes
  3. use ctrl+pageup and ctrl+pagedown
  4. see the layout change as if using alt+[]

This is annoying since I use ctrl+pageup/pagedown to switch between buffers in Neovim.

Log files

zellij.log zellij-12.log zellij-14.log

zsehanovic commented 1 year ago

Thought this might help with debugging: (log stdin_handler.rs:96) (tables: showkey -s -k -a) [

INP: [91] 
EVT: [Key(KeyEvent { key: Char('['), modifiers: NONE })] 
Key ASCII Keycode ScanCode
[ 91 0133 0x5b

]

INP: [93] 
EVT: [Key(KeyEvent { key: Char(']'), modifiers: NONE })] 
Key ASCII Keycode ScanCode
] 93 0135 0x5d

Alt + [

INP_buff: [27, 91] 
EVT: [Key(KeyEvent { key: Char('['), modifiers: ALT })] 
Key ASCII Keycode ScanCode
^[[ 27 0033 0x1b
91 0133 0x5b

Alt + ]

INP_buff: [27, 93] 
EVT: [Key(KeyEvent { key: Char(']'), modifiers: ALT })] 
Key ASCII Keycode ScanCode
^[] 27 0033 0x1b
93 0135 0x5d

PgUp

INP: [27, 91, 53, 126] 
EVT: [Key(KeyEvent { key: PageUp, modifiers: NONE })] 
Key ASCII Keycode ScanCode
^[[5~ 27 0033 0x1b
91 0133 0x5b
53 0065 0x35
126 0176 0x7e

PgDn

INP: [27, 91, 54, 126] 
EVT: [Key(KeyEvent { key: PageDown, modifiers: NONE })] 
Key ASCII Keycode ScanCode
^[[6~ 27 0033 0x1b
91 0133 0x5b
54 0066 0x36
126 0176 0x7e

C^PgUp

INP: [27, 91, 53, 59, 53, 126] 
EVT: [Key(KeyEvent { key: Char('['), modifiers: ALT }), Key(KeyEvent { key: Char('5'), modifiers: NONE }), Key(KeyEvent { key: Char(';'), modifiers: NONE }), Key(KeyEvent { key: Char('5'), modifiers: NONE }), Key(KeyEvent { key: Char('~'), modifiers: NONE })] 
Key ASCII Keycode ScanCode
^[[5;5~ 27 0033 0x1b
91 0133 0x5b
53 0065 0x35
59 0073 0x3b
53 0065 0x35
126 0176 0x7e

C^PgDn

INP: [27, 91, 54, 59, 53, 126] 
EVT: [Key(KeyEvent { key: Char('['), modifiers: ALT }), Key(KeyEvent { key: Char('6'), modifiers: NONE }), Key(KeyEvent { key: Char(';'), modifiers: NONE }), Key(KeyEvent { key: Char('5'), modifiers: NONE }), Key(KeyEvent { key: Char('~'), modifiers: NONE })] 
Key ASCII Keycode ScanCode
^[[6;5~ 27 0033 0x1b
91 0133 0x5b
54 0066 0x36
59 0073 0x3b
53 0065 0x35
126 0176 0x7e
TheSast commented 1 year ago

This also happends on Ctrl/Alt + Insert and Ctrl/Alt + Delete

rnovacek commented 1 year ago

Shift + PageUp and Shift + PageDown have the same effect and cannot be remapped (I have raised #2673 about it).

tbottomparallel commented 1 year ago

Also Alt PageUp and Alt PageDown trigger the layout changes, and cannot be unbound

$ zellij
  × Failed to parse Zellij configuration
   ╭─[/home/tbottom/.config/zellij/config.kdl:2:1]
 2 │ keybinds {
 3 │     unbind "Alt PageUp"
   ·     ─────────┬─────────
   ·              ╰── Invalid key: 'Alt PageUp'
 4 │     normal {
   ╰────
  help: For more information, please see our configuration guide: https://zellij.dev/documentation/configuration.html

and in a similar vein Ctrl Alt Arrow and Alt Shift Arrow and Ctrl Alt Shift Arrow all behave like Alt Arrow

andreamtp commented 5 months ago

Same problem here: on linux you learn pretty soon to Shift PgUP/PgDown to scroll through the terminal.

If it cannot be mapped to scroll up/ down (see #2934), at least avoid making it mapped to something else: muscolar memory is hard to remap, but having it triggering other changes is really disappointing.

This bug raise frustration in daily usage of a your great project, please don't forget about user experience of linux nerds, that is likely one of your major base.

brianmay commented 5 months ago

Yes, I wouldn't mind if the key combination did nothing. But when it suddenly changes the layout of my panes, which were perfect they way there were. Arrgh. And I can't restore then back again.

Problem is though, I have no idea where this mapping is coming from. Or what function it maps to even. I have tried searching github, but can't find anything relevant.

I think the first step to solving this issue is knowing exactly what happens when you push Shift/Ctrl/Alt PageUp/PageDown.

If somebody could point me to a code reference where these mappings are defined, that would be a huge help.

tomasol commented 1 month ago

v0.40.1 is affected as well, however when I built the latest main - 7559b26c - the issue is gone :tada: I don't see any Ctrl PgUp/PgDn, Alt PgUp/PgDn or Shift PgUp/PgDn weirdness, and can finally use Ctrl Insert in helix.

jovandeginste commented 5 days ago

I can confirm that the issues seems to be gone with v0.41.1! :partying_face:

brianmay commented 4 days ago

Yes, the built in bindings are gone. Much better.

Wondering if you can create custom bindings for any of these keystrokes now?