Key bindings in custom commands are all mapped to lower cases
Describe the bug In my config.yaml I've set two custom commands to push and pull to specific remotes and branches. This part of the config is shown as below
customCommands:
- key: '<c-p>'
description: "Pull from a specific remote repository"
context: 'files'
loadingText: 'Pulling ...'
command: git pull {{ .Form.Remote }} {{ .Form.RemoteBranch }}
prompts:
- type: 'input'
key: 'Remote'
title: "Remote:"
suggestions:
preset: 'remotes'
- type: 'input'
key: 'RemoteBranch'
title: "Remote branch:"
suggestions:
command: "git branch --remote --list '{{.Form.Remote}}/*' --format='%(refname:short)' | sed 's/{{.Form.Remote}}\\///'"
- key: '<c-P>' # '<c-P>' will not work?, seems to be same as '<c-p>', please use '?' in file panel to bring up the keybindings menu
description: "Push to a specific remote repository"
context: 'files'
loadingText: 'Pus hing ...'
command: git push {{ .Form.Remote }} {{ .Form.RemoteBranch }}
prompts:
- type: 'input'
key: 'Remote'
title: "Remote:"
suggestions:
preset: 'remotes'
- type: 'input'
key: 'RemoteBranch'
title: "Remote branch:"
suggestions:
command: "git branch --remote --list '{{.Form.Remote}}/*' --format='%(refname:short)' | sed 's/{{.Form.Remote}}\\///'"
The key bindings for these two commands are <c-p> and <c-P>. But in actuality they are all mapped to <c-p> in lazygit, see the screenshot below:
To Reproduce As described in the bug description
Expected behavior I'm not sure whether the custom command keybindings support the capital letter or am I just missing some config settings to setup a keybinding with capital letter.
Version info: lazygit version: commit=3675570a391b1a49ddd198b4c7e71e17701d4404, build date=2024-03-23T09:09:11Z, build source=binaryRelease, version=0.41.0, os=windows, arch=amd64, git version=2.43.0.windows.1
git version: git version 2.43.0.windows.1
Note: please try updating to the latest version or manually building the latest master to see if the issue still occurs.
hi, I'll like to give this one a try. Can someone assign me?
@dsolerh feel free to take it, do note that I'm not sure if this is just a bug that we map everything as lowercase, or if we can't actually detect <c-p> vs <c-shift-p>.
yes, I think the clear way to implement it will be using <c-shift-something>
in that case we'll have to add all those keys to the map, and I guess that check how they are converted to actual key press
Hi, I can't find a way to capture an key event when I press ctr+shift+
https://pkg.go.dev/github.com/gdamore/tcell/[email protected]#ModShift
@stefanhaller you've been elbow-deep in the tcell, you could probably answer this off the cuff.
I'm not an expert here either, but my suspicion is that it's just not possible unless tcell implements https://github.com/gdamore/tcell/issues/671.