Commit graph

442 commits

Author SHA1 Message Date
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
Nick Randall
ee172c3164 fix(meta-key): fix edge cases for meta key usage. (#761) 2016-10-03 17:29:33 +02:00
Aurélien Bottazini
a561f4650b Add Setting for modifier Keys cmdIsMeta and altIsMeta (#686)
* Adds Setting for modifier Keys cmdIsMeta and altIsMeta

* ModifierKeys setting for redux state

* removing from default config modifierKeys
2016-09-30 14:30:11 +02:00
Philippe Potvin
a1f8413680 Fix config-store imports (#733)
* `configureStore` => `configure-store`

* dependencies: add redux-logger
2016-09-21 23:29:23 -03:00
Krzysztof Kaczor
bbf0af66b2 Improve developer pleasure (#556)
* single command to run webpack and app

* added dev tools and custom store for development mode only

* fix linter issues
2016-09-21 15:11:42 -07:00
David Gómez
ac69e0b9a0 Fix tab navigation using mouse clicks (#732)
Fixes a bug introduced by #723
2016-09-21 15:44:47 -03:00
Matheus Fernandes
1866104d03 [WIP] Use XO instead of Standard (#723)
* Bump `eslint-plugin-react`

* Add `eslint-config-xo-react`

* Add XO

* Remove eslint-related dependencies, add XO config and use XO as the linter

* Code style: Standard => XO 

* Use xo property to ignore files

* Fix remaining errors
2016-09-21 16:27:11 +02:00
Guillermo Rauch
8a01f8a48b Add window bgcolor updates (#524)
* transparent + reactive background colors

* refactor header to not set its own background color

* make terms not set background color

* dramatically improve tab borders

* remove background color from electron windows

* Revert "remove background color from electron windows"

This reverts commit ca4de3c5dc28095f1a598f7ac79d4dff4b66ccd5.

* put alpha first for electron

* remove initial bg color setting, but maintain reactive one

* fix
2016-09-19 08:47:33 +02:00
Vitaly Domnikov
42a69e0c76 Fix tab switching (#709)
* Passthrough tab switching keystrokes

fixes #658

* fix formatting
2016-09-15 07:36:16 +02:00
Matthew Conlen
a3d5004c13 allow plugins to require('react') 2016-08-30 15:04:30 -04:00
chabou
a724f4fbd2 Add French keyboard compatibility (#638) 2016-08-22 18:43:56 +01:00
Philippe Potvin
3a9447185f dblClick test nodeName (#641) 2016-08-21 11:44:17 +02:00
ppot
3813d27d5f Fix ScrollPort SelectAll 2016-08-20 17:25:04 -04:00
ppot
ed4a2c66da Path matching selection on dblClick 2016-08-20 17:25:04 -04:00
James
125fdd98e5 Fix #527: validate cursorColor value and apply default if it fails (#590)
refactor `validateColor`: remove unnecessary variable declaration
2016-08-18 10:33:09 +02:00
Efe Gürkan YALAMAN
e2b270b172 Added customChildrenBefore to the tabs. (#580)
customChildrenBefore was missing on the tabs component.
2016-08-17 10:13:32 +02:00
Philippe Potvin
fd351a5b93 Provide clear selection of text in terminal view (#608)
* Permit clearSelection on text enter and mouse selection. Fix #591

* Add config for copyOnSelect

* Update with descriptive comment
2016-08-13 23:03:44 +02:00
James Hall
cb651f6492 Fix international tilde character, and ` and ´ (#584)
* This fixes many more keyboard layouts
* Make backticks work on German keyboards
* Add italian keyboard layout, and also log when uncaught dead key occurs
2016-08-10 18:37:35 +01:00
Ives van Hoorne
749d1f4681 Fix maximizing behaviour (#176)
* Fix maximizing and minimizing

* Emit via side effect in action creator

* Store window state in the store

* Move unmaximize for diff
2016-08-06 11:01:01 +01:00
James Hall
9b42c5ff52 Fix mapXDispatch and allow plugin to access onWheel (credit: lkzhao) (#578)
* Fix mapXDispatch && allow plugin to access onWheel see https://github.com/zeit/hyperterm/pull/563
2016-08-06 10:17:09 +01:00
Albin Ekblom
cc112b6683 Use single quotes for better compatibility (#575) 2016-08-06 09:44:23 +01:00
Albin Ekblom
f954a1e7bc Add config for bell (#468)
* Add config for bell

* Use Set instead
2016-08-05 23:30:40 +01:00
Lorenzo Zottar
9d65cb74c0 File dropped into terminal window adds path to command line (#559)
* Added file-uri-to-path dependency

* Added new rpc event to send data to session

* Modified sendSessionData to use activeUid if no uid is passed to function

* "will-navigate" prevented on file drop, path added to session
2016-08-04 14:43:57 +01:00
James Hall
519210ece6 Initial support for pressing ~ ^ " ' ` on international keyboard layouts until composed characters lands (#521)
* International keyboard support fixes

* Use correct tilde character

* Add correct caret char

* Add alternate key code mapping for ~ and ` - credit: fecabianchi
2016-08-02 01:08:51 +01:00
James Hall
7d765d531e Fix space escaping in paths dragged onto the icon (#545) 2016-08-02 00:02:46 +01:00
Lorenzo Zottar
7e941b0451 Handling file opening (#329)
* Add function to escape a shell argument.

* Keep track of the last used window.

* Implement support for the open-file event.

* The shell escape regex needs parentheses to be captured.

* Removed lastWindow and added getLastFocusedWindow method to app

* Create window create new session only if no callback passed

* Added app.windowCallback to handle open-file before "ready"

* Small lint fixes

* Differeent open file handling: check if it is directory, and if the file is executale or not

* Small fixed and added some comments

* Added php-escape-shell module in place of custom escapeShellArgument()

* Fixed wrong code and added detailed comment

* Aliased php_escapeshellcmd import

* Rebased; added error handling in OpenFile

* changed string contatenation with template literal

* Pinned php-escape-shell dependency

* Typo fix

* getLastdFocusedWindow now uses Array.prototype.reduce()

* Notify users of unexisting path while open file
2016-08-01 23:52:21 +01:00
James Hall
c95ca509f3 Fallback to nano if no editor is set (#517)
* Fallback to nano if no editor is set

* Add notepad fallback for windows

* Remove padding

* Use constant instead of var
2016-07-30 10:10:01 -07:00
Leo Lamprecht
c3e4cbebe4 Fix code style 2016-07-29 22:40:46 +02:00
Albin Ekblom
220b29c6c7 Correct css Blob type (#508) 2016-07-29 22:30:36 +02:00
Leo Lamprecht
23320bc72f Merge pull request #487 from 7373Lacym/add-localhost-regex
changed regex for most forms of localhost
2016-07-28 22:18:36 +02:00
CHaBou
31731f55f4 Add comment for PR #478 2016-07-28 21:45:19 +02:00
Mitch Lacy
ccbcae0856 added regex for most forms of localhost 2016-07-28 14:12:21 -05:00
chabou
b3dec55f29 Preventing shell history pollution (#478) 2016-07-28 10:44:50 -07:00
Leo Lamprecht
8874feff76 Fix close tab icon
This closes #449
2016-07-28 11:28:41 +02:00
Ayhan
83d7db363d Fix linux tab margin (#442)
* Fix linux tab margin, close #433

* fix statement
2016-07-26 16:37:54 -07:00
Marc Bachmann
7a01ec77c4 Remove duplicated shortcut bindings (#445) 2016-07-26 16:36:19 -07:00
Italo A. Casas
24597f5e8e removing unnecesary line of code (#437) 2016-07-26 13:20:17 -07:00
Guillermo Rauch
6671e65434 notifications: fix (notes) link 2016-07-26 11:31:19 -07:00
Mike
7e889dd509 Add a slight timeout to update the fontSmoothing pref (#407)
This seems like a bug with chrome/electron where the devicePixelRatio
value doesn't update right away. It's probably in the event loop, so
adding a short timeout should solve this problem.
2016-07-26 10:46:23 -07:00
Albin Ekblom
03e1f5f833 Only try to match url if it's needed (#395) 2016-07-25 11:22:25 -07:00
Albin Ekblom
4aa1c2d03d Fix typo in plugin loader (#396) 2016-07-25 11:01:18 -07:00
Guillermo Rauch
aaed99abac Reorg (#386)
* Step 1: move electorn into `app/`.

This is to comply with the suggested directory format of
`electron-builder`: https://github.com/electron-userland/electron-builder#two-packagejson-structure

* Step 2: add build directory with icon files for mac / windows

* Step 3: move all development (web) assets into main directory

* Step 4: add `build` namespace to dev `package.json`

* Step 5: move all dev dependencies into dev file and get rid of
old electron packagers in favor of `eletorn-builder`

* Step 6: target build inside `app/` as everything else is excluded at build time

* Step 7: remove old stuff!

* Step 8: update README

* turn off asar for `child_pty`
2016-07-24 10:59:21 -07:00