Skip to content

Feature Request: Add nextPane and prevPane keybindings #2871

Closed

Description

@moswald

There's nextTab and prevTab, but since I work in a single-tab, multi-pane environment, those keybindings do nothing for me. How about being able to bind ctrl+tab to nextPanel?

(Would fit in nicely with the rest of #1000 .)

Edit: I can't believe I typoed that last nextPanel as nextTab, making the sentence and request completely nonsensical. :D

Activity

  1. added
    Issue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.
    on Sep 24, 2019
  2. ghost added
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on Sep 24, 2019
  3. ghost added
    Needs-Tag-FixDoesn't match tag requirements
    on Sep 24, 2019
  4. zadjii-msft commented on Sep 24, 2019

    @zadjii-msft
    Member

    As of #1910, you can move the focus between panes "directionally", with moveFocus{Up|Down|Left|Right}.

    For example:

                { "keys": ["alt+left"], "command": "moveFocusLeft" },
                { "keys": ["alt+right"], "command": "moveFocusRight" },
                { "keys": ["alt+up"], "command": "moveFocusUp" },
                { "keys": ["alt+down"], "command": "moveFocusDown" },

    I suppose though there's also room for moving focus "in order" or "in MRU order" through panes as well. MRU order makes sense, but I'm not really sure how "in order" would work

    I'm going to leave this open because this makes sense as a potential feature, though I believe that #1910 will probably satisfy your needs.

  5. added
    Area-UserInterfaceIssues pertaining to the user interface of the Console or Terminal
    Help WantedWe encourage anyone to jump in on these.
    Issue-TaskIt's a feature request, but it doesn't really need a major design.
    on Sep 24, 2019
  6. ghost removed
    Needs-Tag-FixDoesn't match tag requirements
    on Sep 24, 2019
  7. moswald commented on Sep 24, 2019

    @moswald
    MemberAuthor

    Yeah, I'm using the current moveFocus bindings, but they're just not as natural as the ctrl+tab muscle memory I've built up using other apps. I usually switch between just two tabs so MRU would work great, but "in order" could be implemented by remembering the order in which tabs were created.

  8. removed
    Issue-FeatureComplex enough to require an in depth planning process and actual budgeted, scheduled work.
    Needs-TriageIt's a new issue that the core contributor team needs to triage at the next triage meeting
    on Oct 7, 2019
  9. DHowett-MSFT commented on Oct 7, 2019

    @DHowett-MSFT
    Contributor

    Yanking the triage tag on this one, since it's a worthwhile thing we should probably have. "Backlog" status stays!

  10. zadjii-msft commented on Aug 5, 2020

    @zadjii-msft
    Member

    From mfeiertag in #7194

    New panes get assigned increasing IDs.
    { "command": { "action": "moveFocus", "direction": "next" }, "keys": "ctrl+alt+tab" }
    focuses the pane with the next ID
    { "command": { "action": "moveFocus", "direction": "prev" }, "keys": "ctrl+alt+shift+tab" }
    focuses the pane with the previous ID

    IDs could be in order of creation or in order of last used.
    Property Necessity Type Default Description
    paneCycleMode Optional String created Defines the order of panes when cycling. Possible values: created or lastUsed

    Related to #5803 and #5464
    Similar to #4692

    Example (pane in focus bold):

    Single Pane:
    | 1 |
    Duplicate pane:
    | 1 | | 2 |
    Pressing ctrl+alt+tab:
    | 1 | | 2 |
    Duplicate Pane 1, than pane 2:
    | 1 | | 2 |
    | 3 | | 4 |
    Pressing ctrl+alt+tab would go to pane 1:
    | 1 | | 2 |
    | 3 | | 4 |
    Pressing ctrl+alt+shift+tab would go back to pane 4:
    | 1 | | 2 |
    | 3 | | 4 |
    Pressing ctrl+alt+shift+tab again would go to pane 3:
    | 1 | | 2 |
    | 3 | | 4 |

  11. 1 remaining item

  12. ghost closed this as completedin #8183on Dec 11, 2020
  13. ghost removed
    In-PRThis issue has a related PR
    on Dec 11, 2020
  14. ghost added a commit that references this issue on Dec 11, 2020
    04309a2
  15. ghost added
    Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.
    on Dec 11, 2020
  16. DHowett commented on Dec 11, 2020

    @DHowett
    Member

    moveFocus with direction: previous will be how you do this.

  17. added 2 commits that reference this issue on Jan 28, 2021
    969bbd7
    75e698e
  18. Rosefield commented on Jul 29, 2021

    @Rosefield
    Contributor

    This item seems incomplete, specifically the next portion is missing from the current implementation and the linked spec. To me the idea of having the "in order" style cycling is important (equivalent to just cyclically alt-tabbing between panes) that lets me get to any pane through one keybinding. The "in order" order can be fairly arbitrary (so long as it is consistent), but just iterating through the tree leaves from first-leaf to last-leaf seems reasonable.

    Also, the current implementation of the previous movement seems tangential to the "in order backwards" version, in that it only cycles between two panes. e.g. if you have 3 panes, 1| 2 | 3, and you go from 2 to 3, pressing previous will go to 2, then pressing previous will go back to 3 again, with no way to go back to 1. This can be separately useful, but seems to be solving a different feature request.

    I would be happy to implement the "in order" next/previous version, but I'm not sure if that goes against the grand plan.

  19. zadjii-msft commented on Aug 3, 2021

    @zadjii-msft
    Member

    You know, that's a fair point. We never did come up with an in-order traversal method - that was seemingly lost part of the discussion. I think we got so focused on the MRU previous element, the in-order bit was lost.

    I'll bring this up in team sync. See what other folks think. Thanks for bringing this up!

  20. zadjii-msft commented on Aug 9, 2021

    @zadjii-msft
    Member

    After discussion, yea, we totally forgot about the inOrder version of this. "moveFocus": "nextInOrder" and "moveFocus": "previousInOrder" seemed like they were likely candidates for the param to mean "take me to ++paneId" / "take me to --paneId".

    I'll move this to a new issue. Thanks for keeping us honest!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-UserInterfaceIssues pertaining to the user interface of the Console or TerminalHelp WantedWe encourage anyone to jump in on these.Issue-TaskIt's a feature request, but it doesn't really need a major design.Product-TerminalThe new Windows Terminal.Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions