Quine's fork of "Hyper" by Vercel, A terminal built on web technologies
Find a file
Martin Ek a7595c1a45 Split Panes (#693)
* 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 #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
2016-10-03 19:00:50 -07:00
app Split Panes (#693) 2016-10-03 19:00:50 -07:00
assets Reorg (#386) 2016-07-24 10:59:21 -07:00
build implement extend-info for the custom plist [@lordgiotto] 2016-07-24 11:13:25 -07:00
lib Split Panes (#693) 2016-10-03 19:00:50 -07:00
test Fix AVA tests on Linux (#735) 2016-09-30 12:47:07 -03:00
.editorconfig Fix for markdown files (#618) 2016-08-14 21:10:41 +02:00
.gitignore These aren't needed 2016-09-15 09:47:37 +02:00
.npmrc Split Panes (#693) 2016-10-03 19:00:50 -07:00
.travis.yml Use JSON for travis config 2016-09-22 08:32:06 +02:00
LICENSE.md Add a copy of the MIT license (#160) 2016-07-16 18:24:53 -07:00
package.json Split Panes (#693) 2016-10-03 19:00:50 -07:00
README.md Use start script for development 2016-09-22 07:59:24 +02:00
webpack.config.js [WIP] Use XO instead of Standard (#723) 2016-09-21 16:27:11 +02:00

Build Status Slack Channel Changelog #213 XO code style

For more details, head to: https://hyperterm.org

Usage

You can download the latest release here.

If you're on macOS, you can also use Homebrew Cask to download the app by running these commands:

$ brew cask update
$ brew cask install hyperterm

Contribute

  1. If you are running Linux, install "icnsutils", "graphicsmagick" and "xz-utils"
  2. Fork this repository to your own GitHub account and then clone it to your local device
  3. Install the dependencies: npm install
  4. Build the code, watch for changes and run the app: npm start

To make sure that your code works in the finished application, you can generate the binaries like that:

$ npm run pack

After that, you'll see the binary in the ./dist folder!