veeso / tui-realm

👑 A ratatui framework to build stateful applications with a React/Elm inspired approach
MIT License
590 stars 25 forks source link

[BUG] - key event for ctrl shift char is not working. #47

Closed tramhao closed 1 year ago

tramhao commented 1 year ago

Description

I set key binding for ctrl, alt, ctl+alt works. but as long as shift is involved, char doesn't work.

Steps to reproduce

ctrl+shift+special keys like left, pagedown works. but char doesn't work. when bits is 3, char doesn‘’t work. I tried different computers and same problem.

Expected behaviour

It's supposed to work like other keys.

Environment

Additional information

Add any other context about the problem here.

tramhao commented 1 year ago
[keys.global_quit.code]
type = "Char"
args = "q"

[keys.global_quit.modifier]
type = "KeyModifiers"
bits = 0

For example, above config works, but when I change bits to 3,5,7, and char to Q, it doesn't work. When bits is 1, and char is Q, it works. It's really strange. When bits is 2 or 4, char is q, it works without problem. I tried alacritty and kitty. I checked the possible conflict key in alacritty and there is no conflict. I change q to e or r, it's the same effect.

veeso commented 1 year ago

I've tried both

Event::Keyboard(KeyEvent {
                code: Key::Char('b'),
                modifiers: KeyModifiers::CONTROL | KeyModifiers::SHIFT | KeyModifiers::ALT,
            })

and

Event::Keyboard(KeyEvent {
                code: Key::Char('b'),
                modifiers: KeyModifiers::CONTROL | KeyModifiers::SHIFT,
            }) => return Some(Msg::AppClose)

and for me it's working correctly (I'm on macos). What system are you trying on?