Skip to content
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

Split panes #56

Closed
timothyis opened this issue Jul 5, 2016 · 50 comments
Closed

Split panes #56

timothyis opened this issue Jul 5, 2016 · 50 comments
Labels
help wanted Contributions wanted towards the issue 🛠 Type: Feature Request Issue or PR is a feature request/proposal for Hyper

Comments

@timothyis
Copy link
Contributor

Hey! I'm loving using this so far, there's only one thing missing that helps me with my workflow.

I'd love to see multiple panes in tabs. For example, you could use CMD+D for a horizontally split pane or CMD+SHIFT+D for a vertically split pane from the currently selected. I don't have any particularly good ideas on how to navigate the panes with keyboard commands. Atom uses CMD+K then CMD+[directional arrow] to navigate between split panes.

Anyway, I'd absolutely love to see this feature in hyperterm, I hope it's possible!

@rauchg
Copy link
Member

rauchg commented Jul 5, 2016

Yes. It's possible and we'll do it.

@timothyis
Copy link
Contributor Author

Here's a shot at trying to be helpful towards the process of getting this done.

I took your sketch file from hyperterm-art and tried to prototype what it could possibly look like.

image

image

@rauchg
Copy link
Member

rauchg commented Jul 6, 2016

wow that looks incredibly beautiful. Thank you @codetheory

@nuke99
Copy link

nuke99 commented Jul 16, 2016

@codetheory can you share the code ? I was about do the same thing when I came across this thread

@timothyis
Copy link
Contributor Author

@nuke99 There isn't any code from my side. The screenshot I shared was a design prototype addition to the sketch file found in the hyperterm-art repository.

@sdaitzman
Copy link

I'd love to see the interface behave similarly to iTerm2

@FalkoJoseph
Copy link

Can't wait for this! 😎

@CWSpear
Copy link
Contributor

CWSpear commented Jul 18, 2016

@codetheory You'd probably actually want nested over each split pane, as well as the "parent" window tabs on top.

See iTerm:

screen shot 2016-07-18 at 11 06 17 am

@timothyis
Copy link
Contributor Author

@CWSpear I was actually just thinking about this. I don't know how @zeit plan to do it though!

@nfcampos
Copy link
Contributor

we might want to use this for rendering the split panes https://github.com/tomkp/react-split-pane

@iamstarkov
Copy link
Contributor

@nfcampos that sounds good

@rdewolff
Copy link

Looking forward having that feature too!

@solomonhawk
Copy link

solomonhawk commented Jul 27, 2016

@rauchg How do you want to move forward on this? We chatted briefly on Twitter - I'd like to understand what your plan is for this feature.

Edit: to clarify, I'm wondering whether this should be in core or a plugin.

@timothyis timothyis added help wanted Contributions wanted towards the issue 🛠 Type: Feature Request Issue or PR is a feature request/proposal for Hyper labels Jul 27, 2016
@ekmartin
Copy link
Contributor

I've started working on this. @solomonhawk I'm pretty certain that it needs to be in core though, as it requires quite significant changes to the current structure (sessions and so on).

I'm sure it'll be a while until I have a PR done, getting nested splits working smoothly is a pretty large change. So if anyone's already working on it and beat me to it, :shipit: 👍. Otherwise I'm on Slack if anyone wants to brainstorm eventually.

@tuongaz
Copy link

tuongaz commented Jul 27, 2016

Can't wait for this

@solomonhawk
Copy link

@ekmartin Wonderful, I'll look for you on slack.

@iamstarkov
Copy link
Contributor

@ekmartin @solomonhawk hi, can you help me with finding slack you are talking about?

@ekmartin
Copy link
Contributor

Looks like you found it @iamstarkov, but if anyone else's looking it's here: https://zeit.chat/

@c4milo
Copy link

c4milo commented Jul 31, 2016

This is the only feature stopping me from using hyperterm fulltime in order to be as productive as I'm with iTerm2.

@ieiayaobb
Copy link

Hope this can be supported then I can replace my iTerm2 totally

@chabou
Copy link
Collaborator

chabou commented Aug 5, 2016

It will be great if a pane can temporarily take all the tab space. A sort of maximize into a tab.
Like Terminator on linux : http://gnometerminator.blogspot.fr/p/introduction.html

@mikekreeki
Copy link

@chabou iTerm does that too, I use it frequently. Would be great if Hyperterm supported that too.

@wilfredjonathanjames
Copy link

wilfredjonathanjames commented Aug 7, 2016

The other thing iTerm gives us is the ability to hide pane headers (see the grey bar over each pane in the screenshot above).

It also allows me to map key combos to move between panes relative to the current focus.

If we can get both of these features, that would be ideal.

@tleunen
Copy link

tleunen commented Aug 11, 2016

I also like the new way Atom did to create the split panes. You can grab a tab and drag/drop it in a specific area of the app to make it create the split panes the way you want.

ekmartin added a commit to ekmartin/hyperterm that referenced this issue Aug 18, 2016
This allows users to split their Hyperterm terms into
multiple nested splits, both vertical and horizontal.

Fixes vercel#56
ekmartin added a commit to ekmartin/hyperterm that referenced this issue Sep 5, 2016
This allows users to split their Hyperterm terms into
multiple nested splits, both vertical and horizontal.

Fixes vercel#56
@mmathys
Copy link

mmathys commented Sep 15, 2016

@ekmartin ur fork is sick af

@c4milo
Copy link

c4milo commented Dec 7, 2016

great work on the split panes, beautifully done. I'm switching from iTerm now. Line height being too small is the new split panes for me.

@kevinhowbrook
Copy link

Is this merged now? @rauchg

@tleunen
Copy link

tleunen commented Dec 8, 2016

Split panes are available since 0.8.1

@ghost
Copy link

ghost commented Dec 8, 2016

Beautiful! One issue tho: when my window manager (amethyst) shrinks Hyper, it seems like it doesn't redraw, so the lower pane gets hidden. My work-around is to do a quick CMD+SH+D + CMD+W, but that hinges on remembering a pane just got hidden.

@maximeaubaret
Copy link

Nice, I was waiting for this :)

@ppot
Copy link
Contributor

ppot commented Dec 10, 2016

@realogicbcleary Do an issue for that.

@michaelzoidl
Copy link

Is there a way to change to focused pane via a shortcut? E.g. in iTerm2 i can switch between them with alt + cmd + <arrow-key>

@ekmartin
Copy link
Contributor

You can cycle back and forth with Ctrl+Alt+Tab and Ctrl+Shift+Alt+Tab. There's a couple of issues for other types of split key bindings here: #828 #1295

@mmathys
Copy link

mmathys commented Jan 17, 2017

@ekmartin martin, you the real mvp

@vnctaing
Copy link

You also can do it with cmd+shift+[ or cmd+shift+] like on Atom

@dezman
Copy link

dezman commented Feb 12, 2017

How can you expand a pane to full screen?

@ppot
Copy link
Contributor

ppot commented Feb 12, 2017

@dezman Can you be more specifc.

@dezman
Copy link

dezman commented Feb 12, 2017

@ppot Im just wondering if there is a feature like cmd+shift+return in iTerm where the pane you are on fills the whole screen and you can toggle between viewing all your panes and expanding one to fill the screen. Thanks!

@ppot
Copy link
Contributor

ppot commented Feb 12, 2017

@dezman Not at the moment! it's in the stack of things to be implemented!

@dezman
Copy link

dezman commented Feb 12, 2017

@ppot okay awesome, thanks for the info, is there a place i can check for the development of this feature?

@ppot
Copy link
Contributor

ppot commented Feb 12, 2017

@dezman This will be on the rebuild I am doing. You can open an issue for this at https://github.com/ppot/hyper/issues
So I can keep track

@dezman
Copy link

dezman commented Feb 12, 2017

@ppot great, thanks!

@itsashis4u
Copy link

Split pane command in linux/windows?

@iamstarkov
Copy link
Contributor

@itsashis4u you can find it in the menu
screen shot 2017-04-04 at 12 43 38

@itsashis4u
Copy link

Thanks, @iamstarkov.
I am using elementary os and I believe a global menu is not present in it. Will look for a workaround.

tylerong pushed a commit to tylerong/hyper that referenced this issue Jul 3, 2017
* npm: add .npmrc with save-exact=true

* split panes: create initial implementation

This allows users to split their Hyperterm terms into
multiple nested splits, both vertical and horizontal.

Fixes vercel#56

* split panes: suport closing tabs and individual panes

* split panes: ensure new splits are placed at the correct index

New split panes should be placed after the currently active
pane, not at the end like they were previously.

* split panes: add explicit dependency to uuid

* split panes: implement split pane cycling

This adds menu buttons for moving back and forward between
open split panes in the currect terminal tab.
Doesn't add a hotkey yet, needs some bikeshedding.

* split panes: move activeSessionUid to its own object

It made little sense to have so many objects with `activeSessionUid`
set to `null` when it only mattered on the top level.
Now it's an object mapping term-group `uid` to `sessionUid` instead.

* split panes: make sure closing the last split pane exits the app

* split panes: fix a crash after closing specific panes

Sometimes the terminal would crash when a specific
split pane was closed, because the `activeSessions`
mapping wasn't updated correctly.

* split panes: fix a bug that caused initial session sizing to be wrong

* fix all our focus / blur issues in one fell swoop :O (famous last words)

* get rid of react warning

* hterm: make sure not to lose focus when VT listens on clicks

* term: restore onactive callback

* add missing `return` to override (just in case)

* split pane: new split pane implementation

* goodbye react-split-pane

* added term group resizing action and reducer

* terms: supply border color so that we can use it for splits

* term-group: add resizing hook

* term-groups: add resizing constant

* remove split pane css side-effect

* split panes: pass existing hterm instances to Term

* split panes: add keybindings for split pane cycling

* split panes: remove unused action

* split panes: remove unused styling

* split-pane: remove `console.log`

* split-pane: remove `console.log`

* split panes: rebalance sizes on insert/removal

* split panes: pass existing hterm instances to Term

* split panes: add keybindings for split pane cycling

* split panes: remove unused action

* split panes: remove unused styling

* split panes: rebalance sizes on insert/removal

* split panes: set a minimum size for resizing

* split-pane: fix vertical splits

* css :|

* package: bump electron

* split panes: attach onFocus listener to webviews

* 1.4.1 and 1.4.2 are broken. they have the following regression:
- open google.com on the main window
- open a new tab
- come back to previous tab. webview is gone :|

* split panes: handle PTY exits

* split panes: add linux friendly keybindings
@mxmzb
Copy link

mxmzb commented Jul 16, 2017

may i ask how you managed to greyscale out all the inactive panes?

@iamstarkov
Copy link
Contributor

@Flaque
Copy link
Contributor

Flaque commented Apr 30, 2018

Suggestion: move the "split" options to "View" instead of in "Shell".

@donatoaz
Copy link

donatoaz commented Jul 1, 2018

Is there a shortcut to resize splits? In iTerm2 ctrl+cmd+arrows resizes the current splits. This way there is no need to use the mouse to drag in order to (in || de)crease the split.

Awesome terminal, loving it btw...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Contributions wanted towards the issue 🛠 Type: Feature Request Issue or PR is a feature request/proposal for Hyper
Projects
None yet
Development

No branches or pull requests