Open JosephTLyons opened 2 years ago
Have you seen any good implementations of this? Personally I find VSCode's settings ui abysmal, and dread any time I have to use it.
I feel like the closest positive experience I've had is remapping UIs in games.
I've never had any issues with VSCode's keybind editor, it's not in the normal settings area. I like the approach taken with binding keys to commands rather than commands to keys like "down"
=> "cursorDown"
and also a million other things.
There is a UI specifically for this in VSCode, I think it works well.
Hi everyone. I made a mockup of a keybinding interface that I believe would be an improvement on the status quo. Basically the idea is to use a table rather than a list. Here's a screenshot:
Using two dimensions means you can visualise where approximately a keybinding is based on theme, if many similar keybindings are grouped close together. At least, that's how my mind works. Ymmv.
Im wondering if we can ship something smaller in the interim - just a modal that displays the keys being held, allowing for copying and pasting into the clipboard so you can paste it into your keymap.json
file.
Is your feature request related to a problem? Please describe. It isn't always super easy to work with the
keymap.json
. Sometimes I have no issues, other times, I'm totally lost on why something isn't working. There is an issue open for validation of config files, but I'm starting to think a keybinding user interface would be a much nicer experience.Describe the solution you'd like A panel (maybe something that just opens up in a tab?) that has the following setup (description could be skipped):
alt-g
The only editable area would be the
Keybinding
column. At a minimum, the user could just type in the keybinding, but having it capture the binding would be icing on the cake.Some additional considerations:
A
registered to some action, adding a new keybindingB
for that actiondoes not de-register keybinding
A`, so you end up with 2 keybindings doing the same action and you can't de-register the original. Having the UI enforce that all bindings must be unique would solve this.