-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Design UX for moving a tab to an existing window #4640
Comments
Thank you for starting this discussion. A few thoughts:
Far beyond the scope of the basic tab window mover, it would be very nice to have a better general tab management solution. In Neovim I use two plugins with a UX that I really like: oil.nvim and harpoon, that allows manipulating files or quick switcher in a text buffer. This means that I very easily cut and paste lines wherever I want them with the commands I already know. That UX is a bit complicated/unintuitive for most people, so it would be better as below: My proposal: build a generalized "tab manipulator" overlay.With only a few functions, this could be extremely useful for reordering tabs, moving them to windows, closing them, or any functions we want in the future. I would propose a similar shortcut/UX design to ranger and lf file browsers, as described (note this is a "full-featured" description, we could build a simpler MVP):
Something like this is probably far beyond the scope of main fork vimium, but it would provide an easy, quite understandable way to perform powerful and fast mass (or single) tab manipulation. I think I could implement this if people do want it in main. It would look something like:
If I wanted to move, for example, all tab 1s to Window 2, I could type "/ 1" so the list looks like:
Then press "v" (or "V", depending our shortcut choice) to select all, then "d" to cut. All tabs would be highlighted as in the cut buffer. then I can move cursor to Window 2 and push "p" to paste. Note that windows and groups stay visible even on filter, allowing for them to still be paste targets. So if I want to just move one tab I could do that with this UX as well by filtering until I find it, pressing d, then p on the window. So if I filtered by "Other 1" it would look like:
There are a lot of nuances here, but a workflow for conveniently moving tabs based on name, and reordering tabs, and also allowing for moving to other windows, and moving to other groups, seems best supported by some sort of "tab manipulation window," even if the UX is quite different from that proposed here. We could do something very similar if we added actions to the tab picker #4611 if we allow performing the action on all or "most" of the search results, in some way (although it wouldn't be quite as flexible). Summary: In my opinion we need a better flexible way to perform actions on many tabs, like closing many, anyway. To me, it makes sense to either 1) build this into the tab picker or 2) build some sort of tab manipulator. Either of these could then be used for move to window/group. |
See #2407 for the initial feature request and discussion.
To organize the discussion, I'm splitting off the UX discussion and proposal for this feature into this separate issue.
UX requirements
Not requirements
UX options
1) Show a window picker
window.
2) Move to a window in a direction
3) Move the tab to the "next" window, AKA moveTabToNextWindow
4) Cut-and-paste
Other references
Comments
Of these options, I think (1) is the simplest: it doesn't have any difficult UX drawbacks, and it takes direct inspiration from the way tab moving already works in Chrome, which is a general design goal for Vimium.
What do you think?
The text was updated successfully, but these errors were encountered: