-
Notifications
You must be signed in to change notification settings - Fork 8.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
Ability to select and interact with subtrees of panes #10733
Comments
Out of curiosity, is there any sort of similar functionality in |
There is support for this in the i3 window manager, which is excellent. You can select panes or groups of panes at any level. |
Most of what I'm familiar with in terms of window managers is xmonad, and a lot of my thoughts on what features I want come from there. This particular request just seemed like the logical progression of functionality given what I've tried to do using this terminal since it has an explicit tree structure. |
This commit adds the ability to interact with subtrees of panes. Have you ever thought that you don't have enough regression testing to do? Boy do I have the PR for you! This breaks all kinds of assumptions about what is or is not focused, largely complicated by the fact that a pane is not a proper control. I did my best to cover as many cases as I could, but I wouldn't be surprised if there are some things broken that I am unaware of. Done: - Add `parent` and `child` movement directions to move up and down the tree respectively - When a parent pane is selected it will have borders all around it in addition to any borders the children have. - Fix focus, swap, split, zoom, toggle orientation, resize, and move to all handle interacting with more than one pane. - Similarly the actions for font size changing, closing, read-only, clearing buffer, and changing color scheme will distribute to all children. - This technically leaves control focus on the original control in the focused subtree because panes aren't proper controls themselves. This is also used to make sure we go back down the same path with the `child` movement. - You can zoom a parent pane, and click between different zoomed sub-panes and it won't unzoom you until you use moveFocus or another action. This wasn't explicitly programmed behavior so it is probably buggy (I've quashed a couple at least). It is a natural consequence of showing multiple terminals and allowing you to focus a terminal and a parent separately, since changing the active pane directly does not unzoom. This also means there can be a disconnect between what pane is zoomed and what pane is active. ## Validation Steps Performed Tested focus movement, swapping, moving panes, and zooming. Closes #10733
🎉This issue was addressed in #11153, which has now been successfully released as Handy links: |
Description of the new feature/enhancement
There are a number of features that exist or are being made that allows one to manipulate the tree of panes from the leaves, e.g. resize-pane, split-pane, move-pane, toggle-split, etc. It would be helpful if this functionality could be extended such that a user can select a particular subtree and interact with it directly.
Some examples
Suppose you have the following grids
where the tree for each is
currently there is no way to:
move-panes
,swap-panes
, etc, it would be nice to be able to take an entire subtree and swap it with another pane/subtree, move it to another tab, etc in one actiontoggle-split
once it is added because there is no way to select a parent of a pane, there is no way to turn grid 1 into grid 2 because only parents of leaves can be modified.Proposed technical implementation details (optional)
One possible solution to this would be to have a hotkey (or other mechanism) to select the parent of the currently focused pane. This parent would then itself be focused and some of the existing set of actions could be applied to it. This might require giving IDs to non-leaf panes so that they can be addressed individually.
A component of this could also be some mechanism to show the tree structure of the tab, perhaps just adding borders (in different colors?) to every pane and not just leaf panes.
The text was updated successfully, but these errors were encountered: