sxyazi / yazi

💥 Blazing fast terminal file manager written in Rust, based on async I/O.
https://yazi-rs.github.io
MIT License
14.54k stars 331 forks source link

Letter key keymaps with shift modifier of form <C-X>, <C-S-X> do not work #1441

Closed smackesey closed 1 month ago

smackesey commented 1 month ago

What system are you running Yazi on?

macOS

What terminal are you running Yazi in?

kitty 0.35.2

yazi --debug output

Yazi
    Version: 0.3.0 (Homebrew 2024-08-01)
    Debug  : false
    OS     : macos-aarch64 (unix)

Ya
    Version: 0.3.0

Emulator
    Emulator.via_env: ("xterm-kitty", "")
    Emulator.via_csi: Ok(Kitty)
    Emulator.detect : Kitty

Adapter
    Adapter.matches: Kitty

Desktop
    XDG_SESSION_TYPE: None
    WAYLAND_DISPLAY : None
    DISPLAY         : None

SSH
    shared.in_ssh_connection: false

WSL
    /proc/sys/fs/binfmt_misc/WSLInterop: false

Variables
    SHELL              : Some("/bin/zsh")
    EDITOR             : Some("nvim -u /Users/smackesey/stm/conf/ext/vim/init/env/terminal.lua")
    YAZI_FILE_ONE      : None
    YAZI_CONFIG_HOME   : None
    ZELLIJ_SESSION_NAME: None

Text Opener
    default: Some(Opener { run: "${EDITOR:=vi} \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })
    block  : Some(Opener { run: "${EDITOR:=vi} \"$@\"", block: true, orphan: false, desc: "$EDITOR", for_: None, spread: true })

tmux
    TMUX   : false
    Version: 3.4

Dependencies
    file             : 5.41
    ueberzugpp       : No such file or directory (os error 2)
    ffmpegthumbnailer: 2.2.2
    magick           : 7.1.1-36
    fzf              : 0.54.3
    fd               : 10.1.0
    rg               : 14.1.0
    chafa            : No such file or directory (os error 2)
    zoxide           : 0.9.4
    7z               : No such file or directory (os error 2)
    7zz              : No such file or directory (os error 2)
    jq               : 1.7.1

Did you try the latest nightly build to see if the problem got fixed?

No, and I'll explain why below

Describe the bug

I am trying to map multi-modifier combinations of letter keys with the shift modifier. This form works:

{ on = "<C-S-X>", run = "shell 'echo \\<C-S-X\\>' --interactive" }

But these two forms do not:

{ on = "<C-S-k>", run = "shell 'echo \\<C-S-k\\>' --interactive" },
{ on = "<C-K>", run = "shell 'echo \\<C-K\\>' --interactive" },

Seems like both of the above should work, as is you effectively have to redundantly specify shift with both S- and the capitalized form of the letter.

Minimal reproducer

Observe that these do not work:

# keymap.toml
[manager]

prepend_keymap = [
  { on = "<C-S-k>", run = "shell 'echo \\<C-S-k\\>' --interactive" },
  { on = "<C-K>", run = "shell 'echo \\<C-K\\>' --interactive" },
]

Anything else?

No response

sxyazi commented 1 month ago

Please try https://github.com/sxyazi/yazi/pull/1448

smackesey commented 1 month ago

Confirmed working on HEAD-- thanks for the quick fix!

github-actions[bot] commented 1 week ago

I'm going to lock this issue because it has been closed for 30 days. ⏳ This helps our maintainers find and focus on the active issues. If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.