Conversation
Keeps failing, no time to solve now
Removes keySpace, keyUpDw, keyUPDW, keyRight and introduces keyUpDown, keyLeftRight and keyQuit. From this commit on, every commit doesn't work as a standalone and the program would break in that state. These commits are simply a split of a big modification for clarity, not usability. This is the START
…t inputs on init All inputs now start blurred and without a built-in AcceptSuggestion key; the upcoming selection/input mode switch will manage focus explicitly. Also removes textinput.Blink from Init since the cursor is only active when an input is explicitly entered
…patch Introduces updateSelectionMode and updateInputMode as separate handlers toggled by inputMode. Also extracts triggerButton as a dedicated helper to keep button activation logic in one place
The help bar now shows different key hints depending on whether the app is in selection mode or input mode This is the END (my only friend...)
|
This feels kind of unintuitive especially that I need to enter into an input field and exit it again without being able to just tab to the next one. Using the tab keys to navigate up and down does kind of make sense, but then I'd also expect the up and down arrow keys to work. Regarding the scrolling I think it's better if there is an actual scroll container with a scrollbar where the user can scroll with their mouse I know it goes against the whole philosophy of a TUI that can be used exclusively with the keyboard but btop for example also allows you to do that, and they support both keyboard navigation and mouse. |
|
|
@0PandaDEV and me submitting similar feedback at the same time... XD |
|
Also I had another idea. There are 2 screens:
Configure Screen
Results Screen
@Necrom4 @0PandaDEV feedback? questions? ideas? |
How would be the most natural as a completion keymap and a "multi-results window" scroll keymap to you then?
What would feel natural to you as a keymap to scroll the detailedResult window then? Lazygit implements shift+UpDown arrow (Shitft+j/k aswell), that could be another possiblity.
Which scrolling, the one of the left window or right window? Either way I had already created Issues to implement scrolling in both of those (scrollbar on the right and pages for the left)
Yep that was intended and I completely forgot it, thx! (It's "input mode" btw (select is to select an element in the header), so we all know what we're talking about for the rest of this thread). I also believe the old (master) version allowed faster navigation, but it was very.. "original". |
Wooh that would be a huge amount of work, and I wonder honestly how much it would make it better than the current version, except for "Via" which indeed would then be easier to implement. But appart from that I only see more complexity than the current version, so much visually, as in terms of code but also usage. One very very good thing though, is that in that version every keymap could (still not sure) make sense. |
|
Btw this PR is a request from multiple people who want to be able to navigate things with Vim keymaps and arrows. |
|
Honestly the concept of configure and results screen from @Waradu makes the most sense to me, but that would require rewriting the whole UI layout from scratch. About the Vim bindings I just like the old navigation more maybe this could be solved with a config boolean to activate the vim bindings if that is something a user wants. |
As I had not used Vim for a while, I was a bit confused. This would likely be even more confusing for people who have never used Vim as they are missing the tab key to switch input fields. I think vim users can adapt to non vim inputs but non vim user can not adapt to vim inputs easily. Maybe add a flag or config option like |
Oh yes, it definitely will be. |
Unfortunately it would be extremely code (and condition) heavy to implement both "styles" as they share no logic.
No because the Vim keys are just a secondary option to the arrow keys, meaning a user could use this TUI for years without even noticing their existence, they'll never be "lost" because of them.
That would baasically be going back to the old (current) navigation, so there would be no reason to have the Selection Mode to
90% of TUIs nowadays support Vim keybindings and I myself hate it when they don't have them. The beautiful thing about it is that it's just an extra, so non-vim users never have to be influenced by it, as mentioned above. So what I take from this discussion is that my first implementation ended up being an extremely ergonomic and fast way of using the TUI, that allows the user to do any actions from anywhere in a single navigation mode, while with this PR I wanted to simplify a bit the navigation, normalize it towards a similar style to other TUIs, but I never realized that could ONLY imply a more complex navigation, in terms of number of keys pressed. This PR hence brings the navigation closer to what most users would find natural, (autocomplete with Now we I'm guessing we should stick with the current version and wait for more feedback, especially from people with opposite opinions. Or we could also try to make this PR's logic a bit more "natural", such as the user opens the TUI in input mode inside the first input box, Concerning the config layout idea, it would certainly be the cleanest solution, but by far also the least ergonomic, a total opposite of the current system, where we can access all the information and modify everything from a single view and very few key presses away. That's something I wouldn't like to loose, especially if we can find a middle ground in terms of keymaps so we can keep the view the same. |
|
PS: Thank you for your reviews, I appreciate it enormously. And sorry for the long 🍑 comment haha, though I believe each point is necessary to be made so all our ideas are understood and we don't repeat ourselves in the future. |
This PR aims to establish a more natural navigation logic, with the usual Neovim keymaps, tab completion and others.
This will close #35
left/right arrow keysorh/l.Up/Down arrow keysorjkscroll the detailed Result view.Tab/Shift+Tabscrolls the multi-results view. PressingEnter/Spaceenters the hovered input field or toggles the hovered button andQquits the app.left/right arrow keys, complete the suggestion withTab, and leave the mode withEsc. (Entersearches and also leaves the mode, good when finished writing the second input field.)Hopefully none of this actually needs to be explained as the new help bar, which dynamically displays both modes, explains it pretty simply.
I will soon add another commit that reimplements the "DimmedBorder" color, which this time will be used to show focus in or out of InputMode, for easier visual reference.
@0yech @0PandaDEV @Waradu
(@dpajkovic @trintlermint @valyntyler @pierluca @Chaxiraxi @an-Iceberg too if you are interested in giving feedback)
I would love your opinions how this new navigation logic compared to the current
masterone, do you prefer these simpler and more classic keymaps?You can test this out with the following: