Commit graph

184 commits

Author SHA1 Message Date
Martin Ek
fe91b4c76e Refactor plugin retrieval (#695)
* plugins: refactor props decorators

* plugins: add missing plugin functions to notifier

* plugins: refactor reducer decorators

* bug: make sure reduceTermGroups are added from plugins
2016-10-08 14:38:47 -07:00
Daniel Bayerlein
aa285a8bc6 Cleanup (rename HyperTerm to Hyper) (#812)
* Rename container

* Rename hyper container itself

* Add HYPER_DEBUG for debug

* Rename HyperTerm to Hyper

* Rename HyperTerm connector and extension

* Add HyperTerm state and dispatch for backwards compatibility
2016-10-08 09:26:07 -07:00
Martin Ek
2ffc1aee3d Move notification fetching to the main process (#804)
* Move notification fetching to the main process

* Add npm run app
2016-10-07 20:28:40 -07:00
Daniel Bayerlein
6a5ddc0c70 HyperTerm 👉 Hyper.app 2016-10-06 19:33:08 +02:00
Guillermo Rauch
787fb0f604 lint 2016-10-06 08:31:31 -07:00
Guillermo Rauch
9f771e839f api updates 2016-10-06 08:28:43 -07:00
Guillermo Rauch
fd29fab068 Revert "package: update"
This reverts commit f3688c1fd6.
2016-10-05 09:21:27 -07:00
Guillermo Rauch
f3688c1fd6 package: update 2016-10-05 09:21:17 -07:00
Guillermo Rauch
689e73d3d8 change version 2016-10-04 20:02:26 -07:00
Martin Ek
540414f59d split panes: set hotkeys based on OS (#771) 2016-10-04 08:33:21 -07:00
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
Marshall Bowers
de1a01ff57 Preserve multi-byte encoded utf-8 characters (#769) 2016-10-02 09:54:27 -07:00
Philippe Potvin
7aa20a8d45 Memorize window position and size (#617)
* Memorize window position

* Memorize window size

* Add forced settings and window config

* use destructuring and shorthand method

* Set default config

* Use options defaults in createWindow

* Use options object only

* Update return function

* xo comply
2016-10-01 18:44:34 -07:00
Brandon Bayer
6959667589 fix: on Linux/Win, hide OSX specific menu items and change 'Shell' to 'File' (#736)
Based on this document:
https://github.com/electron/electron/blob/master/docs/api/menu.md#user-content-notes-on-os-x-application-menu
2016-10-01 18:07:23 -07:00
Leo Lamprecht
ee1405997d
Let xo handle all directories 2016-09-22 07:41:07 +02: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
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
Brandon Bayer
32a665d7c0 feat: in development, use git-describe for appVersion (#729)
Normally appVersion is set from package.json
closes #718
2016-09-20 19:51:15 -03:00
Daniel Bayerlein
d610104a7a Add missing color dependency (#725) 2016-09-20 13:49:30 -03: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
Leo Lamprecht
fbe0c9c556
Increment version tag 2016-09-15 09:23:57 +02:00
Leo Lamprecht
ae9a583b9f
These can be self-closing 2016-09-11 01:34:20 +02:00
Matheus Fernandes
3be8ffd486 Fix: do not throw when shellArgs is not present in .hyperterm.js (#678)
See dfcb0a9629 (commitcomment-18834267)
2016-08-31 23:33:01 -03:00
Brandon Bayer
dfcb0a9629 fix: errors and crashes on Linux because shellArgs being mutated (#662)
Fixes #661
2016-08-29 19:05:00 -03:00
Brian Douglas
9a0316dd59 issue-656/config-values-arent-scoped (#669)
* issue-656/scoped plugins to hyperterm.plugins

* Scoping plugin versions to hyperterm
2016-08-29 16:38:05 +02:00
Leo Lamprecht
56f718a0f4 Adjusted author 2016-08-20 09:47:30 +02:00
tim neutkens
c8784c2d08 Rename Actual Size to Reset Zoom Level #124 2016-08-20 00:44:04 +02:00
chabou
f0b049b2e3 Fix session exiting (#560)
* Fix session exiting

* Restore original flow and just remove listeners on session when exiting

* Prevent sending data from pty after session exited
2016-08-19 22:19:04 +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
Efe Gürkan YALAMAN
77597da1d3 Added shellArgs to the config. (#572)
In case someone wants to use non-login shells there is a field added to
the configuration file.
If shellArgs not set default shell will be used as before.

i.e. for using interactive shell (and use .bashrc instead of
.bash_profile on linux) use shellArgs: ['-i'] and shell: '/bin/bash'
this is useful especially if you are on Linux.
2016-08-13 21:30:17 +02:00
James Hall
518b0cd9a5 Open new window offset from last focused window (Credit: albinekb) (#581)
* Open new window offset from last focused window

* Make sure a newly opened window is seen to now have focus

* Instead of setting focus time, simply emit the event first

* Add comment explaining why we emit the focus event

* Don't fire the event, as that can make it fire twice
2016-08-06 11:58:57 +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
3dd8eadc90 Moved "file-uri-to-path" dep to app package.json (#569) 2016-08-05 10:03:49 +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
77a103fbf1 [WIP] Add proper window support (#547)
* Add proper window support to both the top menu, and the dock

* Sort out linting

* Only create dockMenu on Mac

* Remove label from menu as it is not needed when using role

* Fix spacing
2016-08-04 01:52:31 +01:00
Matheus Fernandes
f175268912 Add the very first test 🎉 (#549)
* Add syntactic support for tags - #412
* Add the very first test 🎉
* Simplify multiple assertions into one
2016-08-03 16:39:58 -03:00
Mike
2d4b518519 Prevent hovering on tabs from causing text flicker (#492)
* Prevent hovering on tabs from causing text flicker

For some reason, geometricPrecision was causing text to flicker on
non-retina screens when hovering over the tabs

* Use a pixel ratio media query for text-rendering on retina displays
2016-08-02 12:09:54 -07:00
Richard Zhao
011ae3fd52 Add support for environment variables in config (#534)
* Allow env to be specified in config (#424)

This is referencing #424. User specified environment variables
in the `.hyperterm.js` file are expected under a field named `env`.

An example config:

```
module.exports = {
  config: {

    ...

    // Environment variables
    env: {
      WHAT_UP: 'heyo',
    }

    ...

  },

  plugins: [],

  localPlugins: []
};
```

* Add env field to default config
2016-08-02 08:49:25 +01:00
James Hall
c9fe3d82db Add support for opening the terminal on the correct display (#519)
* Add support for opening the terminal on the correct display

* Fix whitespace issue

* Start from the top left again when we run out of space

* Add semicolon
2016-08-02 01:00:49 +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
Albin Ekblom
3198a90823 Use configured shell to update plugins (#447)
* Use configured shell to update plugins

* Make it more compatible

* Use shell-env@0.2.0
2016-07-30 20:51:09 +02:00
Guillermo Rauch
988f32e373 make the auto updater work on windows (#514) 2016-07-29 21:12:53 -07:00
Darin Morrison
60fbc122a8 Fix #467 and #206; quit app on window close (#489) 2016-07-29 21:12:21 -07:00
Darin Morrison
d05d82cb32 Use babel for minification (#471) 2016-07-27 19:02:19 -07:00
Ayhan
72059a7d93 Fix Close process (#450)
* fix close process

* fix control

* fix lint
2016-07-26 20:11:54 -07:00
Ayhan
ce357c72be Revert "Fix close process" (#451) 2016-07-26 20:11:38 -07:00
Ayhan
ed2c810c9f fix close process (#448) 2016-07-26 20:06:43 -07:00
Darin Morrison
4e04d1c4b1 Adjust eslint configuration (#389) 2016-07-26 16:39:47 -07:00
Darin Morrison
86416cebdf Update dependencies (#390)
⬆️ electron-builder@5.16.0
⬆️ electron-prebuilt@1.3.0
⬆️ husky@0.11.6
2016-07-26 16:39:11 -07:00
Mike
05eba4b521 Update shell after config change and notify the user (#405) 2016-07-26 16:37:42 -07:00