Commit graph

43 commits

Author SHA1 Message Date
Albin Ekblom
eeaf4be151 🔥 Cleanup call of php-escape-shell (#1821) 2017-05-13 10:19:03 -04:00
CHaBou
00693de12e Open Hyper config in the native desktop's default manner (#1784) 2017-05-08 20:00:58 -07:00
Zsolt Dollenstein
af21493e2b check for null/undefined session in addSessionData (#1698)
* check for null/undefined session in addSessionData

* Update sessions.js
2017-04-28 20:40:32 -04:00
Henrik
3793adabb5 fix echo issue in config pref (#1633)
* fix echo issue in config pref

* fix spacing inconsitency
2017-03-10 14:29:42 -03:00
Stefan Ivic
36f96abb1d windows: fix editing preferences on bash (#1571)
* windows: fix editing preferences on bash

* linter: fix the linting error

* cleanCode : move the code to a function

* cleanCode: move the constants to the function

* clean: remove unnecessary eslint comment

* clean: use platform instead of defining it
2017-02-24 20:50:20 -08:00
Guillermo Rauch
fe6e2977bd 8 times faster matching of enter key within incoming pty data
https://jsperf.com/exec-vs-match-vs-test-vs-search/5
2017-02-17 02:47:09 -03:00
Matheus Fernandes
d4c1d08701 Revert "Open Preferences in Default JS Editor on Windows" (#1510) 2017-02-15 12:12:48 -03:00
Jon Galloway
6a9b3f74c5 Open Preferences in Default JS Editor on Windows (#1138)
* Open Preferences in Wordpad on Windows

Notepad doesn't handle `\n` line breaks, Wordpad does. 

Fixes #1126.

* Update: Use Win editor from reg

If not found, or set to notepad.exe (which can't handle line breaks), show hyper.js config file in folder so user can open in editor of their choice.

* Fixes for Windows

Fixed shell reference, corrected lint errors.

* Fixes for Windows

Fixed shell reference, corrected lint errors.

* Fixes for Windows

Fixed shell reference, corrected lint errors.

* Always show .hyper.js in folder for prefs

* Always show .hyper.js in folder for prefs

* Fixed electron import
2017-01-10 21:49:32 -08:00
Paul Betts
0ff1cb9584 Windows titlebar improvements (#1307)
* Make double-clicking on the titlebar work

* We don't actually need this

* Draw a Restore icon when the window is Maximized

* Update React State when BrowserWindow changes behind our back

* Cleanup

* Don't show the border if the window is maximized

* Fight with the linter
2017-01-10 21:45:49 -08:00
Philippe Potvin
c7f195ba01 Fix ctrl+c to close WebView 🍾 (#1287)
* rm hyperCaretFocus => prevent callstask

* keep caret component
2016-12-21 07:19:41 -08:00
Philippe Potvin
b2f67c73e4 Fix url interpretation (#1259)
* Fix url interpretation

* update regex
2016-12-17 14:17:58 -08:00
Matheus Fernandes
31721e5c29
Use the correct EOL character based on the current OS 2016-11-22 09:48:40 -02:00
Matheus Fernandes
d34765faa6
Remove duplicated message and add a missing one 2016-11-22 09:48:17 -02:00
Matheus Fernandes
271a221979
Fix character escaping in the open preferences message 2016-11-18 09:07:34 -02:00
Matheus Fernandes
9c90e19760 Add Windows support and first-class Linux support (#946)
* `child_pty` => `pty.js`

* Create a frameless window on Windows and Linux

* Add a brand new UI for Linux and Windows 💅

* [Windows] Fix plugin installation

* [Windows] Fix the `build` script

* [Windows] Add a bigger `icon.ico`

* [Mac] Add `WebKitAppRegion: drag` when running on macOS

* Fix code style 🤔

* Add `appveyor.yml`

* Fix code style (again)

* [Windows] Fix AppVeyor's `install` script

* [Windows] Try a new AppVeyor config

* [Windows] Set the binary path so Spectron can run the tests

* [Windows] Try to build on x64

* Try again to build on x64

* Try one more time 😩

* Throw an error to indicate that `pty.js` was built incorrectly

* [Win/Linux] Add `display: hidden` to <Tabs /> if tabs.length === 1

* [Win/Linux] Reorganize SVGs – via @CodeTheory

* [Win/Linux] Fix the hamburger menu height

* Make the SVGs look better with `shape-rendering: crispEdges;`

* [Win/Linux] Add config options for the window controls and the 🍔 menu

* Add `electron-squirrel-startup` dependency

* [Win] Handle Squirrel commands

* [Win/Linux] Fix default color for the 🍔 and window controls – via @CodeTheory

* [Win/Linux] Add some padding - via @CodeTheory

* [Win/Linux] Add hover states – via @CodeTheory

* [Win] Fix empty window/tab titles

* [Win] Fix opening Preferences (#978)

* [Win] Fix opening Preferences

* Update ui.js

* Update ui.js

* Enhance messages and default editor

* [Win] Add dependency instructions to the README.md [skip ci]

* Fix code style

* [Win/Linux] Check the number of open windows before quitting the app
2016-11-11 15:18:04 -02:00
Philippe Potvin
265024cb45 Remove unused blur/focus (#947) 2016-11-04 15:52:03 -02:00
Leo Lamprecht
630f0f4504
Comply to XO's no-warning-comments rule 2016-10-25 15:04:37 +02:00
David Gómez
8f28573fc0 Prefer default export to make XO happy (#931)
* Comply with prefer-default-export rule for findBySession function

* Remove XO's prefer-default-export rule

* Comply with prefer-default-export rule for init function

* Comply with prefer-default-export rule for getRootGroups function

* Comply with prefer-default-export rule for INIT constant

* Comply with prefer-default-export rule for isExecutable function

* Fix default export for constants

* Comply with prefer-default-export rule for last function

* Comply with prefer-default-export rule for getColorList function
2016-10-25 14:53:15 +02:00
Andrea Parodi
97432df7a4 Improve tabs title (#892)
* Set tab title when asked by the contained shell process via ANSI code

* Commented out process polling code

* Removed unused module and constant

* Remove getTitle method

* Removed props binding

* Removed polling clearTimeout

* Removed session focus & blur

* Remove listening for session `title` event

* Removed SESSION_SET_PROCESS_TITLE action

* Removed remainig blur
2016-10-22 13:05:32 -07:00
Guillermo Rauch
2ebb2369d1 Revert "Quick full screen (#803)"
This reverts commit 64e87d0d27.
2016-10-17 17:16:39 -07:00
Marshall Bowers
64e87d0d27 Quick full screen (#803)
* Add pseudo quick full screen

* Record window size before entering full screen

* Restore window size when leaving full screen

* Toggle menu items for quick full screen

* Remove redundant filters

* Add accelerators for Linux

* Only save window state when not full screen
2016-10-16 00:20:10 -05:00
Martin Ek
7a08b1dc3e Fix xo 0.17 errors and use root xo config for app (#859)
* Use parent xo config in app/

* lint: Fix xo 0.17 errors

* app: add missing semver dependency
2016-10-12 20:35:44 -05:00
Hrvoje Šimić
7e71bf356b fix various typos and grammar errors in comments (#834) 2016-10-10 12:26:47 +02: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
Guillermo Rauch
9f771e839f api updates 2016-10-06 08:28:43 -07:00
Guillermo Rauch
d47aa4470a lint 2016-10-04 21:02:39 -07:00
Nathan Rajlich
f939d88354 return a Redux thunk for the INIT action (#675)
Before, Redux was throwing an error saying that a plain
object was not being returned from the `init()` function
which was breaking hyperterm.
2016-10-04 14:41:50 -07:00
Guillermo Rauch
fec4954dc1 fixes by @ekmartin 2016-10-04 13:27:27 -07:00
Guillermo Rauch
ffa6a89c5a lint 2016-10-04 12:48:37 -07:00
Guillermo Rauch
d01d3868eb simple version-based notifications system 2016-10-04 12:48:37 -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
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
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
Albin Ekblom
cc112b6683 Use single quotes for better compatibility (#575) 2016-08-06 09:44:23 +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
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
CHaBou
31731f55f4 Add comment for PR #478 2016-07-28 21:45:19 +02:00
chabou
b3dec55f29 Preventing shell history pollution (#478) 2016-07-28 10:44:50 -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
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